Я использую JDK 1.6, JAX-WS RI 2.2.5. Все работает отлично, когда на конечной точке сервиса не добавлен обработчик.Но когда веб-метод вызывается, после добавления обработчика SOAP на стороне сервера и выполнения обработчиком soapMessageContext.getMessage (). ToString () клиент получает внутреннюю ошибку 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)
После некоторого поиска в Google, он видит свою проблему с библиотеками.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>