1

我正在尝试在使用 spring 3.1.1 和 weblogic 10.3 的 tomcat 7 上部署应用程序,但我不断收到 NoClassDef 异常:

java.lang.NoClassDefFoundError: Could not initialize class weblogic.jndi.Environment at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:506) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]

我已经仔细检查过,weblogic jar 存在于 WEB-INF/lib 上,它确实包含所述类:

jar tf WEB-INF/lib/weblogic.jar | grep /Environment.class
weblogic/cluster/messaging/internal/Environment.class
weblogic/jndi/Environment.class
org/mozilla/javascript/tools/shell/Environment.class

当 spring bean 工厂尝试在我的 root-context.xml 上构建这个 bean 时会发生这种情况

<beans:bean
    id="jmsConnectionFactory"
    class="org.springframework.jndi.JndiObjectFactoryBean"
    p:jndiTemplate-ref="jndiTemplate"
    p:jndiName="weblogic.jms.ConnectionFactory" />

我认为这可能是一些类路径问题,但我一直在玩 webapp 的 MANIFEST.MF 和这个有问题的 jars(spring & weblogic) 一段时间,但没有任何运气。关于可能导致这种情况的任何想法?

4

1 回答 1

0

我相信weblogic.jar直接在类路径中使用是行不通的。您需要创建wlfullclient.jar并将其放入WEB-INF/lib.

按照此处给出的说明进行操作:http: //middlewaremagic.com/weblogic/ ?p=558

于 2013-05-17T19:04:31.537 回答