我正在使用 netbeans 从 WSDL 文档生成 Web 服务客户端。
客户端工作正常,直到我们将其放入我们的生产环境中。jars 是针对来自 jaxws-api.jar 和 jaxb-api.jar 的 javax.ws.xxxxx 类生成的,我们将它们放在生产类路径中。
在我们的生产环境中,我们还有其他依赖于 xfire 库的代码。当我们尝试实例化 SubmissionAPI() 时,我们得到一个 NoClassDefFound 异常。我在下面粘贴堆栈跟踪。
UBLSoapTest 类似乎调用了正确的“服务”类,但“服务”类正在调用 org.codehaus.xfire.jaxws.Provider。
我检查了 javax.xml.ws.Service 的来源,它有'import javax.xml.ws.spi.Provider;'
我们已经尝试用里面的 javax.xxxx 类组装 jar,但仍然得到相同的结果。我怀疑我们需要在清单文件中设置一个类路径,但我不确定那里需要什么。
FAIL: Exception: java.lang.NoClassDefFoundError: Could not initialize class
org.codehaus.xfire.jaxws.JAXWSHelper
org.codehaus.xfire.jaxws.ServiceDelegate.<init>(ServiceDelegate.java:33)
org.codehaus.xfire.jaxws.ServiceDelegate.<init>(ServiceDelegate.java:53)
org.codehaus.xfire.jaxws.Provider.createServiceDelegate(Provider.java:32)
javax.xml.ws.Service.<init>(Service.java:56)
org.ubl.soap.test.SubmissionAPI.<init>(SubmissionAPI.java:44)
我什至不知道从这里看哪里。
我们尝试在清单中设置类路径,但收效甚微。
我们尝试过的基本 jar 结构是:
/org/xxxx
/META-INF/xxx
和
/org/xxx
/META-INF/xxx
/javax/xxx
和
/org/xxx
/META-INF/xxx
/jaxws-api.jar
/jaxb.jar