2012-03-14 8 views
4

JDK 1.6、JAX-WS RI 2.2.5を使用しています サービスエンドポイントでハンドラが追加されていない場合は完全に機能します。しかし、Webメソッドが呼び出されたときに、サーバー側でSOAPハンドラーを追加し、ハンドラーsoapMessageContext.getMessage()。toString()を実行すると、クライアントは内部サーバーエラー500を取得します。そして、サーバ側では、以下のトレースが出力されます。 SOAPハンドラでメッセージを取得するときにNoSuchMethodError

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のライブラリを削除すると、いくつかのクラスにエラーが発生します。

実際に私は確かではありません、それはlibsの互換性や重複の問題か他のものですか?どんな助けも高く評価されます。ここで

は、エンドポイントの設定です:

<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> 
+0

私はプロジェクトライブラリとしてJDK 1.5とJAX-WS RIで同じコードを試しましたが、完璧に動作します。 JDK 1.6で何がうまくいかないのか分かりません。 –

答えて

3

問題は解決しました。 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

関連する問題