2012-03-31 17 views
0

私たちはSOAPベースのWebサービスを持っていますが、RESTFUL WebサービスはSOAPよりも速いため、RESTFUL Webサービスを使用することを考えています。互換性のためにSOAPサービスも維持したいので、SOAPベースのサービスとRESTfulなサービスの2つのバージョンがあります。サービス消費者は、使用したいものを選択することができます。安心してJavaのSOAP Webサービス

私の問題は、RESTFUL WebサービスはWebアプリケーションなので、WARファイルでそれらをパックする必要がありますが、JAX-WSをJARファイルに入れてこれらの2つのサービスのエンドポイントが完全に異なるようにする必要があります。しかし、これらの2つのサービスは互いに属しています(サービスは同じですが、インターフェイスは異なります)ので、同じエンドポイントで呼び出すことは合理的です。

この問題を解決する方法はありますか? RESTFULとSOAPサービスにもなるクラスを作成できますか?

ありがとうございます!

答えて

0

これはESBの理想的なケースだと思います。実際のサービスレイヤーをそのまま使用し、ESB経由で他のフォーマットを公開する必要があります。

また、ESBを介してSOAPとRESTベースのサービスの両方を公開することができます(これは拡張性と管理性の目的のために好きです)。そして、ESBが実際のサービスと話して、クライアントが好む

UltraESBのようなESBを使用すると、サービスのSOAPとRESTの両方の形式が同じエンドポイント(URL)に公開され、ESBは実際のサービスと通信する前に関連する形式に変換し、その逆。

+0

回答ありがとうございました。残念ながら、完全なESBソリューションを導入することはできません。 Perphaps Apache CXFで十分です。 http://cxf.apache.org/docs/jax-rs-and-jax-ws.html – Viktor

関連する問題