应用程序的weblogic服务器上的Jar依赖性异常

时间:2012-01-17 10:39:43

标签: java spring jar weblogic

我在Weblogic Server上部署时遇到异常:

[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

我猜这些问题可能需要指导才能解决:

在研究了这个问题后,有两种可能的情景出现在最前沿: Hibernate Validator Library有一个错误导致对JDK 6的依赖 Hibernate Validator依赖于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上编译,然后出现异常的原因?

1 个答案:

答案 0 :(得分:1)

你被JAr不兼容性所困扰。您的项目有一个版本的JAR,但WebLogic有另一个版本。两者不匹配。 (这就是OSGi天生要解决的问题。)

您需要告诉WebLogic您更喜欢哪种JAR。 weblogic.xml中有一个“prefer WAR file JARs”的设置。对不起,我记不起确切的标签名称;请谷歌吧。