【发布时间】:2018-02-06 14:20:48
【问题描述】:
我们有一个在 Adobe AEM 5.6.1 上运行的 Web 应用程序,它调用 SAP 上的一些 SOAP 服务。 我们为此使用了 javax.xml.ws.Service,但有时我会遇到如下问题,AEM 服务器上的类加载器无法从 com.sun.xml.internal.ws 中找到类图书馆。 一旦我通过临时更改类加载器解决了类似的问题,但这在这里不起作用。 我真正想要的是找到一个更好的库来处理 Soap 和 XML 解析。有什么建议吗?
java.lang.NoClassDefFoundError: com.sun.xml.internal.ws.api.message.Header
at com.sun.proxy.$Proxy45.<clinit>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at java.lang.reflect.Proxy.newInstance(Proxy.java:764)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:755)
at com.sun.xml.internal.ws.client.WSServiceDelegate$4.run(WSServiceDelegate.java:612)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.xml.internal.ws.client.WSServiceDelegate.createProxy(WSServiceDelegate.java:608)
at com.sun.xml.internal.ws.client.WSServiceDelegate.createEndpointIFBaseProxy(WSServiceDelegate.java:593)
at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:331)
at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:313)
at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:295)
at javax.xml.ws.Service.getPort(Service.java:119)
【问题讨论】:
-
Java 的版本是多少?这似乎可以通过您的 Maven 构建中的“导入包”解决此错误。您能否提供您的 pom.xml(构建配置)。关于您最初的问题,您可以使用 Apache CXF 轻松创建 JAX WS 客户端。
标签: xml-parsing osgi jax-ws aem soap-client