【问题标题】:NoClassDefFoundError when using Apache CXF's wsdl2java -databinding jibx使用 Apache CXF 的 wsdl2java -databinding jibx 时出现 NoClassDefFoundError
【发布时间】:2014-07-10 20:37:00
【问题描述】:

我正在尝试使用 Apache CXF 的 wsdl2java 工具从 wsdl 生成 Java 代码。我从 Windows 上的here 下载了二进制分发包,并从命令行使用 CXF 目录上的mvn 命令安装了它。

它适用于默认绑定 JAXB。当我使用参数-db xmlbeans 时它也有效。但是,当我使用-db jibx 时,会出现以下异常:

C:\Users\spagariya\apache-cxf-2.7.11>wsdl2java -db jibx mywsdl.wsdl

Exception in thread "main" java.lang.NoClassDefFoundError: org/jibx/schema/validation/ProblemHandler
        at java.lang.Class.getDeclaredConstructors0(Native Method)
        at java.lang.Class.privateGetDeclaredConstructors(Class.java:2493)
        at java.lang.Class.getConstructor0(Class.java:2803)
        at java.lang.Class.newInstance(Class.java:345)
        at org.apache.cxf.tools.wsdlto.core.PluginLoader.loadDataBindingProfile(PluginLoader.java:409)
        at org.apache.cxf.tools.wsdlto.core.PluginLoader.getDataBindingProfile(PluginLoader.java:422)
        at org.apache.cxf.tools.wsdlto.WSDLToJava.loadDataBinding(WSDLToJava.java:74)
        at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:104)
        at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:86)
        at org.apache.cxf.tools.wsdlto.WSDLToJava.main(WSDLToJava.java:184)
Caused by: java.lang.ClassNotFoundException: org.jibx.schema.validation.ProblemHandler
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        ... 10 more

有什么想法吗?

【问题讨论】:

    标签: maven wsdl cxf wsdl2java jibx


    【解决方案1】:

    确保您的类路径中有 jibx-schema。检查您是否已下载此 jar。

    <dependency>
        <groupId>org.jibx</groupId>
        <artifactId>jibx-schema</artifactId>
        <version>1.2.5</version>
    </dependency>
    <dependency>
        <groupId>org.jibx</groupId>
        <artifactId>jibx-bind</artifactId>
        <version>1.2.5</version>
    </dependency>
    

    【讨论】:

    • 二进制发行版没有 pom.xml。虽然我在 .m2/repository 中有 jar
    • @ShreyansPagariya 我自己试过了。但与你略有不同。我得到了它的 zip 版本并将其解压缩。我得到了和你一样的错误。然后我复制了 lib 文件夹中的两个罐子(不是 pom),它对我有用。
    • 谢谢,我没有意识到将 jar 文件复制到文件夹中会将它们添加到类路径中。但是,另一方面,我现在得到了 java 堆空间 OutOfMemoryError。我尝试使用set MAVEN_OPTS=-Xmx1024M 增加它,但它仍然不起作用。有什么想法吗?
    • 没关系。我必须在批处理文件中设置堆大小。但是,我遇到了类似的问题。你能帮我解决这个问题吗java.lang.NoClassDefFoundError: org/eclipse/core/runtime/IAdaptable
    • 酷。很好,它现在有效。为此,我正在查看 wsdl2java 文档。 :)
    猜你喜欢
    • 1970-01-01
    • 2018-03-22
    • 2019-04-26
    • 2011-07-27
    • 1970-01-01
    • 2011-01-13
    • 1970-01-01
    • 1970-01-01
    • 2013-05-31
    相关资源
    最近更新 更多