【问题标题】:JAX-WS - NoSuchMethodError at getting Message in SOAP HandlerJAX-WS - 在 SOAP 处理程序中获取消息时出现 NoSuchMethodError
【发布时间】:2012-03-30 20:57:33
【问题描述】:

我正在使用 JDK 1.6、JAX-WS RI 2.2.5 当没有在服务端点添加处理程序时,事情就完美了。但是当调用web方法时,在服务器端添加SOAP Handler后,handler执行soapMessageContext.getMessage().toString(),客户端得到Internal Server Error 500(这意味着服务器在处理请求时遇到了错误)。在服务器端,打印以下跟踪:

Mar 14, 2012 4:26:15 PM com.sun.xml.ws.transport.http.servlet.WSServletDelegate doGet
SEVERE: caught throwable
java.lang.NoSuchMethodError: com.sun.istack.XMLStreamReaderToContentHandler.<init>(Ljavax/xml/stream/XMLStreamReader;Lorg/xml/sax/ContentHandler;ZZ[Ljava/lang/String;)V
at com.sun.xml.ws.message.stream.StreamMessage.writePayloadTo(StreamMessage.java:355)
at com.sun.xml.ws.message.stream.StreamMessage.writeTo(StreamMessage.java:462)
at com.sun.xml.ws.message.AbstractMessageImpl.readAsSOAPMessage(AbstractMessageImpl.java:198)
at com.sun.xml.ws.handler.SOAPMessageContextImpl.getMessage(SOAPMessageContextImpl.java:84)
at com.myapp.jaxws.TestingSOAPHandler.handleMessage(TestingSOAPHandler.java:21)


经过一番谷歌搜索,它似乎是它的库问题。 JAX-WS 也在 JDK 1.6 中,我也添加到我的项目中。但是当我从项目中删除 JAX-WS 2.2.5 库时,它会触发一些类丢失错误。

实际上我不确定,是库兼容性还是重复问题或其他问题。任何帮助将不胜感激。

这里是端点配置:

<endpoint name="TestingService" implementation="com.myapp.jaxws.TestingService" url-pattern="/jaxws/TestingService" enable-mtom="true">
<handler-chains xmlns="http://java.sun.com/xml/ns/javaee">
  <handler-chain>
      <handler>
          <handler-name>MyLogicalHandler</handler-name>
          <handler-class>com.myapp.jaxws.TestingLogicalHandler</handler-class>
      </handler>
      <handler>
          <handler-name>MySOAPHandler</handler-name>
          <handler-class>com.myapp.jaxws.TestingSOAPHandler</handler-class>
      </handler>
    </handler-chain>
</handler-chains>
</endpoint>

【问题讨论】:

  • 我在 JDK 1.5 和 JAX-WS RI 中尝试了相同的代码作为项目库,它运行良好。不知道 JDK 1.6 出了什么问题。

标签: java web-services jax-ws


【解决方案1】:

问题已解决。这是 JAXB jar 冲突,另一个较旧的 JAXB 实现被错误地放在类路径中。并且 JAXWS 2.2.6 库没有得到认可,JVM 使用的是 JDK 较旧的 impl。在此处查看详细信息。 http://www.bitspedia.com/2012/03/how-to-use-jax-ws-226-with-jdk-16.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-27
    • 1970-01-01
    相关资源
    最近更新 更多