2009-05-05 8 views
1

私はJAX-WSでテストWSを開発していますが、デモはうまく動作しますが、実際にはテスト環境のURLが生成されています。例:Webサービスを移動すると、ハードコードされたURIはどうなりますか?

com.mycompany.testserver.ws.writer.WriterInterface service = new com.mycompany.testserver.ws.writer.WriterInterface(); 

QName portQName = new QName("http://testserver.mycompany.com/ws/writer.php", "WriterInterfacePort"); 

String req = "SOME_XML_HERE"; 

try { // Call Web Service Operation 

    Dispatch<Source> sourceDispatch = null; 
    sourceDispatch = service.createDispatch(portQName, Source.class, Service.Mode.PAYLOAD); 
    Source result = sourceDispatch.invoke(new StreamSource(new StringReader(req))); 
} catch (Exception ex) [ 
//do stuff here 
} 

このようなアプリケーションを移動するためのベストプラクティスは何ですか。

答えて

2

設定ファイルから接続URLを読み取ります。値をキャッシュして一度だけ読み取る必要があるように、厳密に型指定された構成オブジェクトを作成することもできます。アプリをテストからプロダクションに移行するときは、設定ファイルを更新するだけで済みます。

1

最も一般的な方法は、URLをハードコードされたファイルではなく設定ファイルに保存し、テストとプロダクションのために別々の設定を行うことです。

インテグレーションブローカーまたはサービスレジストリの導入は過度の傾向があります。

0

URLをコードにハードコードするのは避けてください。これを回避するにはさまざまな方法があります。あなたが設定ファイルの機能を利用できなくても、少なくとも宣言された各クラスの先頭の文字列にこのデータを格納するべきです。

URLの/設定データを決してハードコードしない理由について、あなたは今や理由に遭遇しています(しかし、私は思います)。

関連する問題