java - JAX-WS - 在 SOAP 处理程序中获取消息时出现 NoSuchMethodError

标签 java web-services jax-ws

我正在使用 JDK 1.6、JAX-WS RI 2.2.5 当没有在服务端点添加处理程序时,一切都完美无缺。但是当调用一个 web 方法时,在服务器端添加 SOAP 处理程序后,处理程序执行 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>

最佳答案

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

关于java - JAX-WS - 在 SOAP 处理程序中获取消息时出现 NoSuchMethodError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9701303/

相关文章:

java - 从 html 表单向 java 发送值不正确

java - 找不到所需的类(javax.activation.DataHandler 和 javax.mail.internet.MimeMultipart)。附件支持已禁用

java - JAX-WS 网络服务的 JSON 输出?

java - JAX-WS - 在 JBoss 中添加 SOAP header

java - 使 ConstraintLayout 组件在简单的 UI 中填充整个显示

java - XMLSocketReceiver 和 SocketReceiver 如何工作?

c# - 保护 Web 服务中的业务逻辑

java - 当您可以实现 Web 服务 (SOA/REST) 时,用 RMI 实现 EJB 仍然有用吗?

java - WebServiceContext 保持为空

java - 使用局部类变量处理句柄/线程