gpt4 book ai didi

java - 如何在 CXF Web 服务中使用根上下文作为 wsdl 端点

转载 作者:行者123 更新时间:2023-12-01 06:18:25 25 4
gpt4 key购买 nike

我使用 CXF 框架创建了 Web 服务,其中使用 CXF 框架从 WSDL 生成的 Java 类,该框架使用 spring - Tomcat 上的 Web 应用程序托管。我的端口绑定(bind)如下所示。

<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 应用程序的根上下文来处理端口绑定(bind)本身。如果没有,有没有解决办法。这样当我将 Web 服务移植到不同的机器时,它会自动更新 IP 地址。

最佳答案

我有解决方法,因为我使用 tomcat6 插件来部署 war 文件。当我在 url 中给出目标服务器的 IP 地址(如果是本地主机,则为 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部署它时该怎么做

关于java - 如何在 CXF Web 服务中使用根上下文作为 wsdl 端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17794980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com