2017-02-06 15 views
1

の外部から、管理対象のJAX-WSクライアント(@WebServiceRefを挿入)をコンフィグレーションしたい場合は、WebLogic管理コンソールを使用することをお勧めします。アプリケーションの外部からJAX-WS @WebServiceRefクライアントをコンフィグレーションする

たとえば、Webサービス呼び出しを実行するときにサーバー上で認証するためにHTTP要求で送信されるユーザー名とパスワードを設定します。

手動で行うには、実装する必要がありますが、コンテナによって提供される機能を使用するには構成のみが必要です。

私はそれをSAP NetWeaverを使用して実行できました。WebLogicで行うことは可能ですか?

@Stateless 
public class HolidayClientImpl { 

    // I want this dependency to be already configured, instead of doing it myself. 
    @WebServiceRef 
    private MyRemoteService myRemoteService; 

} 

答えて

0

多くを検索した結果、WebLogicでこの機能が利用できないことがわかりました。少なくともバージョン10.3.6と12では存在しません。

あなたは、クライアントの構成を実装しなければならないことを意味、このような何か:

MyPort port = service.getHTTPPort(); 
Map<String, Object> requestContext = ((BindingProvider) port).getRequestContext(); 

// URL 
requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://www.remoteservice.com/service"); 

// Timeouts 
requestContext.put(BindingProviderProperties.CONNECT_TIMEOUT, 5000); 
requestContext.put(BindingProviderProperties.REQUEST_TIMEOUT, 30000); 

// Authentication 
requestContext.put(BindingProvider.USERNAME_PROPERTY, "user"); 
requestContext.put(BindingProvider.PASSWORD_PROPERTY, "password"); 
+0

これにより、各システムで同じパスワードを使用せずにDEV、テスト及びPRODに変更せずにアプリケーションをデプロイすることができないことを意味しますか? –

+0

@DavidLakatosデビッドは、あなたのアプリケーション(データベース、プロパティファイルなど)以外の場所で値(ユーザー名、パスワードなど)を保存し、ビルド/デプロイメントなしで変更することができます。私のコードは静的な値を持っていますが、これはコードを単純化して、クライアントの設定をどのように実行するかを示しています。ここでのポイントは、WebLogicはJAX-WSの内部構成を提供していないことです。通常、プロパティはデータベースまたはXMLファイルに格納されます。シナリオに応じて、キャッシュを使用するかどうかを指定できます。そのような値は頻繁に変更されないので、通常はメモリに保存することをお勧めします。 – BonanzaOne

+0

主なアプローチは、コードを変更せずに、または外部リソース(たとえば、プロパティファイル、db)を使用せずに、デプロイメント中にWeblogicデプロイメントプランを介してアプリケーションプロパティを変更することです。それが実現可能だと思いますか? –

関連する問題