1

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>
  1. 私はURLを与えhttp://localhost:8080/XXXXX/servicesます。
  2. そのサーバーでホストされているすべての wsdl が CXF サービス リストに表示されます
  3. 個々の操作をクリックすると。wsdl、services/ServiceManagementSOAP?wsdl を提供するために開きます

今のところ、ローカル マシンでホスティングを使用していたため、すべてがうまくいきました。今問題はです。Web サービスが別のマシンでホストされていて、CXF サービス リストで個々の wsdl をクリックすると、接続が見つからないというメッセージが表示されます。確認すると、エンドポイント アドレスがまだhttp://localhost:8080/XXXXX/services/ServiceManagementSOAP. WSDL url をクリックする代わりに想定します。WSDL の URL を指定し、localhost を、正常に動作するホストされたマシンの IP アドレスに置き換えます。

だから今問題はです。CXF は、localhost を Web アプリのルート コンテキストに置き換えることによって、ポート バインド自体を処理しません。そうでない場合、それを解決する解決策はありますか。そのため、Web サービスを別のマシンに移植すると、IP アドレスが自動的に更新されます。

4

2 に答える 2

-1

サービスを にバインドできますhttp://0.0.0.0:8080/XXXXX/services/ServiceManagementSOAP。これは、特定の IP を割り当てる必要がなく、時間を節約できる最良の方法です。

于 2015-08-19T07:00:37.817 に答える