我对这里发生的事情感到困惑。我不断收到以下异常:

Caused by: java.lang.ClassNotFoundException: org.jaxen.JaxenException
        at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
        ... 51 more

但是,该类文件位于我的耳朵中,也位于我的ejb list 和耳朵的 list 文件的'Class-Path'属性中。我需要在其他地方添加jaxen jar ,以使其被其他 jar 中的耳朵看到吗?耳朵里的所有 jar 都共享相同的类路径吗?

编辑#1

也有这个:
Caused by: java.lang.NoClassDefFoundError: org/jaxen/JaxenException
        at org.dom4j.DocumentFactory.createXPath(DocumentFactory.java:230)
        at org.dom4j.tree.AbstractNode.createXPath(AbstractNode.java:207)
        at org.dom4j.tree.AbstractNode.selectNodes(AbstractNode.java:164)

编辑#2

我正在部署到glassfish v3.1,并且lib jar位于ear文件的根目录,如下所示:
-foo.ear
--\META-INF
--lib1.jar
--lib2.jar
--jaxen-1.1.1.jar

编辑#3

我曾尝试将其部署到GF的另一个版本,但它似乎可以正常工作,我认为这可能是我使用的版本中的错误。我打开了一个论坛线程here

编辑#4

我在应用程序服务器的lib目录中有dom4j,但在服务器上却没有jaxen。添加jaxen lib可以解决此问题。

最佳答案

您需要服务器 lib文件夹中的jaxen jar

http://jaxen.codehaus.org/releases.html

09-15 14:16