2012-01-17 147 views
1

在WebLogic服务器上部署我得到一个异常:JAR依赖例外应用

[2012-01-13 01:17:11,496] ERROR [org.springframework.web.servlet.DispatcherServlet] Context 
initialization failed 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 
'org.springframework.validation.beanvalidation.LocalValidatorFactoryBean#0': Invocation of init method 
failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException 
at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.at 
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291) 
at 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) 
at 
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288) 
at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) 
at 
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.at 
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext. 

我有一些罐子如下:

log4j-1.2.14.jar 
spring-asm-3.0.3.RELEASE.jar 
spring-beans-3.0.3.RELEASE.jar 
spring-context-3.0.3.RELEASE.jar 
spring-core-3.0.3.RELEASE.jar 
spring-expression-3.0.3.RELEASE.jar 
spring-web-3.0.3.RELEASE.jar 
spring-webmvc-3.0.3.RELEASE.jar 
servlet-2.3.jar 
validation-api-1.0.0.GA.jar 
commons-logging-1.1.1.jar 
hibernate-validator-4.0.2.GA.jar 
slf4j-api-1.5.6.jar 
slf4j-log4j12-1.5.6.jar 
standard.jar 
commons-fileupload-1.1.1.jar 
ESAPI-1.4.4.jar 

我猜测的问题都可以但需要指导解决它:

经过研究的问题,2个可能的情况来到前列: Hibernate验证程序库有一个错误导致dep JDK 6 Hibernate验证器依赖于JAXBException类,并且该类不存在于现有的Weblogic环境中 进一步研究后,hibernate-validator-4.0.2.jar构建明确表示JDK 5的依赖关系。 深入研究Hibernate Validator代码,看起来版本4.0.2依赖于JAXB API 2.1。

Weblogic服务器在Java 1.5上,代码也在Java 1.5上编译,那么为什么异常似乎弹出?

+0

我发现hibernate validator有一个依赖于java 6我添加了一个名为jaxb-api-2.1.jar的api,然后这个问题出现了..任何其他标准来解决这个问题? – GOK 2012-01-17 13:55:50

回答

1

你被JAr不兼容咬住了。你的项目有一个版本的JAR,但WebLogic有另一个版本。这两个不匹配。 (这是OSGi出生时需要解决的问题。)

您需要告诉WebLogic您更喜欢哪个JAR。 weblogic.xml中有一个用于“更喜欢WAR文件JAR”的设置。对不起,我不记得确切的标签名称;请Google为它。

+0

感谢哥们!我在哪里可以找到这个weblogic.xml,我已经很新的weblogic(在Apache Tomcat上工作).. :) – GOK 2012-01-17 11:09:49

+0

我发现hibernate验证器有一个依赖于Java 6我添加了一个名为jaxb-api-2.1.jar然后也出现这个问题..解决这个问题的任何其他标准? – GOK 2012-01-17 13:54:05

+1

在这里寻找设置优先WAR文件JAR:http://stackoverflow.com/questions/7187581/how-to-set-order-of-jars-in-weblogic – 2014-04-08 15:56:24