これまで見てきたすべての WSDL では、localhostを使用してサービス アドレスを記述しています。例えば:
<wsdl:service name="SQLService">
<wsdl:port name="SQLServiceSoap" binding="tns:SQLServiceSoap">
<soap:address location="http://localhost:8080/rservice/services/SQLServiceSoap" />
</wsdl:port>
</wsdl:service>
しかし、そのようなサービスのクライアントが実行されると、リモートマシンで実行されている場合でも、そのサービスの実際の URL がどこにあるかがわかります!
CXF はこの「魔法」をどのように実行しますか?
IOW、サービスが実行されているマシンではないテスト マシン上のクライアント JARは、そのサーバーの場所とそのアドレスをどのように認識しますか?
grep
ソース コードを編集strings
し、クライアントの jar ファイルを編集しましたが、サーバーの URL への痕跡はまったく見つかりませんでした。
それで、それはどのように機能しますか?
更新: 私の非常に自然な探偵の努力で、クライアントのJAR ファイルが置かconfig.xml
れているディレクトリで名前の付いたファイルを見つけました。これには、実際のサーバーの URL が含まれています。したがって、これが、私が継承したプロジェクトの特定のケースで行われる方法のようです。config.xml
質問は次のとおりです。
- これはこれを行う標準的な方法ですか?
- CXF に標準 (または推奨される方法) はありますか?
- それとも開発者の判断に委ねられているのでしょうか?