2010-12-15 10 views
1

Webサービスにリクエストを送信し、その応答を読みたい。 これまで、JAXBを使用してXSDからJavaクラスを生成しましたが、これは応答を読み取るために使用すると仮定していますか?初心者のWebサービスの質問

リクエストを実装するにはどうすればよいですか?私が使用しているWebサービスはサーブレットで、POSTが必要です。 HttpURLConnectionを使用してSOAP要求である文字列を送信する唯一の方法はありますか?

+1

どのようなWebサービスですか?それはRESTサービスですか、それともSOAPですか?あなたはSOAPサービスかもしれないというヒントを与えました。そうであればAxis 2のようなWSDLからクライアントを生成することができました。 – gregor

+0

メトロ(http://metro.java.net /)プロジェクト。 –

+0

はい、SOAPリクエストです。 WSDLがないので、HttpURLConnectionを使用する唯一のオプションはありますか? – bmw0128

答えて

0

2つのJVMの間でリモーティングを行いたいので、相手がコントロールしていると言えば、実際にはその相手です。あなたの必要に応じて、protobuf、hessian、またはTerracottaのようなものを使うことができます。 これらのフレームワークは使いやすく、はるかに効率的です。

1

私はApache CXFを訪問することをお勧めします。あなたが望むのは、裸のJAX-Bだけではなく、JAX-WS + JAX-Bサービスです。特に、WSDLが存在しない場合、JAX-WSプロバイダを使用してSOAPエンドポイントを作成できます。

+0

CXFを使用することをお勧めします。このツールは、Javaでインターフェイスを作成し、それらのインターフェイスに基づいてWSDLおよびXSDを生成することを奨励します。大きな問題は、WSDLとXSDがWebサービスを使用しているときに契約が成立し、その契約が簡単に変更できるときです。そのため、サービスを使用する必要があるパーティーはコードを頻繁に変更する必要があります。実際に私は何度もこの問題を引き起こしてきました。 – Gerbrand

+1

CXFは、コードファーストと契約優先サービスを行うのと同じくらい喜んでいます。両方のためのサポートを含めるためにフレームワークを非難することは、奇妙なアプローチに見えます。 – bmargulies