3

これまで見てきたすべての 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

質問は次のとおりです。

  1. これはこれを行う標準的な方法ですか?
  2. CXF に標準 (または推奨される方法) はありますか?
  3. それとも開発者の判断に委ねられているのでしょうか?
4

1 に答える 1

1

多くの場合、Web サービスには本番 URL とテスト/QA/UAT URL があります。開発者はテスト URL に対して開発を行い、本番環境の準備が整ったら、URL を本番環境を指すように切り替えます。

これをどのように達成するかを決定するのは開発者次第であり、それを処理する標準的な方法はありません。

于 2013-05-23T20:00:22.617 に答える