1

我有一个使用 cxf 创建的 web 服务客户端。当我从 Eclipse 运行时,我没有收到任何错误。但是当我从文件中创建一个 jar 并从 cmd 提示符运行它时,我得到 NoclassDef 异常或 ClassNot found 异常。我已经设置了类路径,java home 正确。

1. 例外

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException

2. 例外

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/cxf/databinding/DataBinding
Caused by: java.lang.ClassNotFoundException: org.apache.cxf.databinding.DataBinding
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)

Web 服务在 C# wcf 中,并且客户端是在没有 JAXBinding 元素的情况下创建的。任何帮助将不胜感激。

谢谢,普里亚.R

4

1 回答 1

1

这是一个典型且易于解决的类路径问题:类路径中缺少 cxf 库 (-ies)。像这样启动应用程序:

java -cp <youJar.jar>;<cxf.jar>[;<another-cxf.jar>;...] my.pkg.Application

您必须将类的名称和-cp参数的值替换为您的 jar 和运行应用程序所需的所有其他库的路径和名称。

为什么它在 eclipse 中起作用:在 eclipse 中,您已经正确设置了构建路径,但是这个构建路径不会导出或添加到 jar 中。

于 2010-11-08T07:31:55.480 回答