miércoles, 26 de junio de 2013

java.util.zip.ZipException: error in opening zip file

Síntomas:

AIX 6.1 64bits
weblogic 10.3.5
SOA Suite 11.1.1.5
JDK 1.6 

Se realiza el despliegue el Enterprise Manager em.ear (este articulo también aplica a cualquier EAR), el despliegue se realiza correctamente pero cuando se inicializa (Servicing all request) falla con el siguiente error en la consola web: 


Se consulta el log del AdminServer y no muestra información relevante,  solamente el siguiente mensaje:

        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
Caused By: java.util.zip.ZipException: error in opening zip file
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(ZipFile.java:137)
        at java.util.jar.JarFile.<init>(JarFile.java:149)
        at java.util.jar.JarFile.<init>(JarFile.java:86)
        at com.sun.faces.facelets.util.Classpath.getAlternativeJarFile(Classpath.java:259)
        at com.sun.faces.facelets.util.Classpath.search(Classpath.java:112)
        at com.sun.faces.facelets.util.Classpath.search(Classpath.java:89)
        at com.sun.faces.config.conf

Causa:

La causa de este error pueden ser varias, entre ellas:

  • Corrupción del EAR que se desea desplegar.
  • Permisos de los archivos que almacena el EAR
  • Conflicto de Librerías.
  • Corrupción de binarios en el WebLogic

 Para descartar que el EAR esté corrupto puede hacer lo siguiente:

$unzip midespliegue.ear

Si los archivos son extraídos correctamente, entonces el EAR no está corrupto.
Si pasa la prueba de corrupción, entonces ya tendríamos que tener los archivos extraídos, bastaría con ejecutar la siguiente sentencia para ver los permisos de todos los archivos extraídos:

ls -ltr *

Si todos los permisos son correctos, entonces se tendría que verificar qué librerías utiliza nuestro despliegue y luego hacer un análisis si esas librerías existen en el weblogic, sí fueron cargadas correctamente, si las versiones de las librerías son las correctas, etc., esta fue la causa de mi problema.

De no encontrar conflictos entre librerías, la única razón que quedaría sería corrupción en binarios del Weblogic, por lo que se necesitaría reinstalar el dominio, o restaurar el dominio desde un backup que se tenga realizado.

Solución:

La Solución para este problema en particular (despliegue del em.ear) se debe a conflictos entre las librerias jsf(1.2,1.2.9.0) y  jsf(2.0). Unicamente el jsf (1.2) debe estar corriendo en el AdminServer.

1. Logearse al WebLogic Console (http://hostname:7001/console)
2. Clic Deployments
3. Clic en el despliegue jsf(2.0)
4. Clic Pestaña Targets
5. Deseleccionar AdminServer
6. Reiniciar los servicios de WebLogic.

No hay comentarios:

Publicar un comentario

Oracle ACE Director Award - Deiby Gómez

Thanks #OracleACE Program for this awesome certificate recognizing the work I have done in the community for the last year. Looking forwa...