簡體   English   中英

如何在CXF Web服務中將根上下文用作wsdl端點

[英]How to use root context as wsdl end point in CXF Web service

我已經使用CXF框架使用WSDL生成的Java類創建了Web服務,該CXF框架使用spring-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. 我給網址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地址。

我有解決方法,因為我使用tomcat6插件來部署war文件。 當我在網址中提供目標服務器的ipaddress(如果是本地主機,則為127.0.0.1)。 然后,服務器的IP地址顯示在端點中。

Endpoint address: http://127.0.0.1:8080/xxxxx/services/YYYYY
WSDL : {http://kp.com/aaaa/webservices/YYYY/}bbbb
Target namespace: http://kp.com/aaaa/webservices/YYYY/

因此,當您單擊WSDL時,指向相應的服務器。

但是我找不到,當我們從tomcat管理器URL部署它時,該怎么做

您可以將服務綁定到http://0.0.0.0:8080/XXXXX/services/ServiceManagementSOAP 這是不需要分配特定IP並節省時間的最佳方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM