2009-07-13 11 views
0

WSDLが添付されたネットワーク上の固定場所でサービスを実行しています。このスタンドアロンでは、wsimportと通常のものでjax-wsクライアントを簡単に作成できますが、別のWebアプリケーションの内部からこのサービスを呼び出すことができるようにします。Webアプリケーション内でWebサービスクライアントを実装するにはどうすればよいですか?

残念ながら、私はここでいくつかの問題を抱えています。一つは、すべてが明らか展開を作るendorsedディレクトリにいくつかの互換性のないクラスを置くのJBoss、上の正規のWebコンテナにかなりうまく動作しますが、ないと失敗します。この問題を解決することを提案しているどこかのブログのエントリがあります

java.lang.ClassCastException: com.sun.xml.ws.client.WSServiceDelegate cannot be cast to javax.xml.ws.spi.ServiceDelegate21 

保証されたjax-ws jarファイルを削除することで、この特定のサーバ上で何かが壊れてしまう可能性があるので、これをさらに分離するより良い方法がないのだろうか? j2ee固有のサポートに完全に頼っているのはおそらくオプションですが、私は本当にシンプルなWebコンテナ(jetty、tomcat、...)にアプリケーションを展開する機能を保持したいと思います。

答えて

3

私の助言は、クライアント上でJAX-WSを忘れることです。それは複雑で、それが考えているほどポータブルではなく、しばしば統合の頭痛です。

より軽量なWebサービスクライアントをお勧めします(Spring-WS's WebServiceTemplateなど)。既存のwsimportで生成されたJAXBバインディングをサポートしますが、JAX-WSのものは無視します。これはシンプルで簡単で、JBossのスタック全体からJettyアプリケーションまで、既存のフレームワークで頭を使わずに実行できます。

+0

+1頭痛のため –

+0

私はそれが他の人にチャイムを邪魔しないと言っていると思います。私はspring-wsを使用して感謝します。 – wds

関連する問題