WSDL 显示不正确的 Soap 绑定地址

WSDL displaying incorrect Soap Binding Address

我在 2 个 WebSphere 9 服务器 (WebSphere ND 9.0.0.0) 上部署了一个 WebService。我在 WAS 服务器前面有一个 F5 负载平衡器,它正在分配 2 个 WAS 服务器之间的流量。

例如

是 1 URL : http://1.2.3.4:9080/contextroot/MyWebService?wsdl

是 2 URL : http://1.2.3.5:9080/contextroot/MyWebService?wsdl

F5 URL : https://mywerservice.domain.com/contextroot/MyWebService?wsdl

当我从 F5 访问 WSDL 时,它在 soap 地址位置显示服务器端口:

    <service name="MyWebService">
       <port name="MyWebServicePort" binding="tns:MyWebServicePortBinding">
          <soap:address location="http://mywerservice.domain.com:9080/contextroot/MyWebService"/>
       </port>
    </service>

我该怎么做才能让 WSDL 开始显示正确的地址?

设置以下两个 Webcontainer 自定义 属性 有助于解决问题:

• trusthostheaderport = true
• com.ibm.ws.webcontainer.extractHostHeaderPort = true

有关说明,请参见下文 URL。

https://www.ibm.com/support/knowledgecenter/en/SSAW57_8.5.5/com.ibm.websphere.nd.doc/ae/rweb_custom_props.html

您应该能够按照 Provide HTTP endpoint URL information 中的说明进行配置。

如文档所述:要查看此管理控制台页面,请单击 应用程序 > 应用程序类型 > WebSphere 企业应用程序 > application_name > 提供 HTTP 端点 URL 信息。