我使用在tomcat上使用spring-web app托管的CXF框架创建了使用WSDL生成的java类的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>
http://localhost:8080/XXXXX/services
。至于现在一切都很好,因为我在我的本地机器上使用托管它。现在的问题是。当Web服务托管在不同的计算机上并单击CXF服务列表中的单个wsdl时,它会让我找不到连接。当我验证时,我发现端点地址仍为http://localhost:8080/XXXXX/services/ServiceManagementSOAP
。假设不是点击WSDL网址。提供WSDL URL并将localhost替换为托管计算机的IP地址,它可以正常工作。
现在的问题是。没有CXF通过用web应用程序的根上下文替换localhost来处理端口绑定本身。如果没有,是否有解决方案可以解决问题。因此,当我将Web服务移植到不同的机器时,它将自动更新IP地址。
答案 0 :(得分:0)
我有解决方法,因为我使用tomcat6插件来部署war文件。当我在url中提供目标服务器的ipaddress(如果它的localhost,然后是127.0.0.1)。然后服务器的IPAddress显示在端点中。
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 manager url
部署它时,我找不到,如何做到这一点答案 1 :(得分:-1)
您可以将服务绑定到http://0.0.0.0:8080/XXXXX/services/ServiceManagementSOAP
。
这是您不需要分配特定IP并节省时间的最佳方式。