2010-11-26 6 views
0

各エンドポイントアプリケーション(サーバーとクライアント)に共通のWebサービスインターフェイスがあります。 "同じ" wsdlのサーバーに接続せずにクライアント側でポートを作成するにはどうすればよいですか?メトロを利用しJAX-WSでサービスプロキシを動的に作成する方法

MagicProxyFactory proxy = MagicProxyFactory.newInstance(MyServiceInterface.class); 

/* then bind service address like that 
((BindingProvider)proxy).getRequestContext() 
.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http address"); 
*/ 

MyServiceInterface port = (MyServiceInterface) proxy.getPort(); 

答えて

0

私が現在何この擬似コード何かを検索しますか?できません。プロキシを作成するにはWSDLが必要です。 WSDLをクライアントにバンドルするか(推奨)、プロキシ作成時にWSDLをダウンロードできるURLを使用します。

2

手順は次のとおりです。

  1. あなたは、WSDLの場所、サービス名、およびサービスの名前空間のURLを知っておく必要のあるService.create方法 を使用してServiceインスタンスを作成します。

    URL wsdlLocation =新しいURL( "http://example.org/my.wsdl"); QName serviceName =新しいQName( "http://example.org/sample"、 "MyService"); サービスs = Service.create(wsdlLocation、serviceName);

  2. Service.getPort()メソッドを使用してサービスプロキシ(接続するサービスポート)を取得します。 このためには、エンドポイントimplemenattionクラス名を知る必要があります。
    MyService port = s.getPort(MyService.class);

あなたは今、プロキシ経由でメソッドを呼び出すことができます。

関連する問題