springを使用してホストされたCXFフレームワークを使用して、WSDLから生成されたJavaクラスでWebサービスを作成しました-TomcatのWebアプリ。私のポートバインディングは以下のとおりです。
<wsdl:service name="ServiceManagement">
<wsdl:port binding="tns:ServiceManagementSOAP" name="ServiceManagementSOAP">
<soap:address
location="http://localhost:8080/XXXXX/services/ServiceManagementSOAP" />
</wsdl:port>
</wsdl:service>
- 私はURLを与え
http://localhost:8080/XXXXX/services
ます。 - そのサーバーでホストされているすべての wsdl が CXF サービス リストに表示されます
- 個々の操作をクリックすると。wsdl、services/ServiceManagementSOAP?wsdl を提供するために開きます
今のところ、ローカル マシンでホスティングを使用していたため、すべてがうまくいきました。今問題はです。Web サービスが別のマシンでホストされていて、CXF サービス リストで個々の wsdl をクリックすると、接続が見つからないというメッセージが表示されます。確認すると、エンドポイント アドレスがまだhttp://localhost:8080/XXXXX/services/ServiceManagementSOAP
. WSDL url をクリックする代わりに想定します。WSDL の URL を指定し、localhost を、正常に動作するホストされたマシンの IP アドレスに置き換えます。
だから今問題はです。CXF は、localhost を Web アプリのルート コンテキストに置き換えることによって、ポート バインド自体を処理しません。そうでない場合、それを解決する解決策はありますか。そのため、Web サービスを別のマシンに移植すると、IP アドレスが自動的に更新されます。