2011-06-08 11 views
9

El cargador de clases Weblogic parece preferir las bibliotecas del sistema sobre las bibliotecas en mi guerra WEB-INF/lib/.¿Cómo hago que Weblogic 10 prefiera los archivos jar en myApp.war:/WEB-INF/lib/sin arrojar VerifyErrors?

He tratado de establecer lo siguiente en WEB-INF/weblogic.xml, sin éxito:

<weblogic-web-app> 
    <container-descriptor> 
     <prefer-web-inf-classes>true</prefer-web-inf-classes> 
    </container-descriptor> 
</weblogic-web-app> 

Esto me da mucha VerifyErrors:

exception is java.lang.VerifyError: (class: org/apache/xerces/parsers/AbstractSAXParser, method: parse signature: (Lorg/xml/sax/InputSource;)V) Incompatible object argument for function call 
     at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:730) 
     at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:196) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1003) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:907) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485) 
     Truncated. see log file for complete stacktrace 

(estoy tratando de evitar el envasado de la GUERRA en un EAR)

+0

¿Qué bibliotecas de sistema son éstas? –

+0

prefer-web-inf-classes debería funcionar, supongo que borraste todas las carpetas temporales y copias en caché de la guerra dentro del dominio? – JoseK

+0

¿Tiene esto que ver con las bibliotecas JAXP que Weblogic útilmente incluye en el classpath de su guerra? – artbristol

Respuesta

5

nunca fue capaz de solucionar este problema de manera satisfactoria, que no sea mediante la especificación de -Djavax.xml.parsers.SAXParserFactory=[xerces sax parser factory class name] (y así sucesivamente para las otras fábricas JAXP como SchemaFactory validación) al iniciar WebLogic.

Ninguno de la filtración/prefer-web-inf material trabajado, posiblemente debido a que requiere bibliotecas Weblogic JAXP en el arranque antes de que incluso lee cualquiera de los archivos de configuración WAR/EAR.

0

Tuve este problema también con tomcat-arquillian. Resulta que "xml-apis 2.0.2" estaba en mi classpath, que en realidad es xml-apis 1.0.b2 y que es demasiado viejo para ser compatible con xercesImpl 2.9.1 que requiere xml-apis 1.3.04.

Cuestiones relacionadas