首页 > 解决方案 > 由于端口 8080 已添加到 wsdl 肥皂地址位置中的域,因此肥皂 Web 服务无法使用

问题描述

我有一个带有 IIS 10 的 Windows Server 2019 设置。

在 IIS 10 上,我使用 LetsEncrypt 生成的有效 SSL 证书在端口 80 和 443 上定义了一个绑定到“example.com”的网站。

在这个网站上,我定义了由 Microsoft ARR 管理的重写规则:从 HTTP 到 HTTPS 的重定向以及 Tomcat 上的各种 Web 服务重定向。

<rule name="http to https" enabled="true" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
        <add input="{HTTPS}" pattern="off" />
    </conditions>
    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Found" />
</rule>
<rule name="myAPI" stopProcessing="true">
    <match url="(myAPI.+)" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
    <action type="Rewrite" url="http://localhost:8080/{R:0}" />
</rule>

我有 Tomcat 9 正在运行并在使用此连接器定义的端口 8080 上侦听:

<Connector URIEncoding="UTF-8"
        connectionTimeout="20000"
        port="8080"
        protocol="HTTP/1.1"
        relaxedQueryChars="\"
        redirectPort="8443"
        scheme="https"
        proxyport="443"
        proxyName="example.com"
        />  

我的网络服务使用 SOAP,我有一个这样的 wsdl:

   <wsdl:service name="MyService">
      <wsdl:port binding="impl:MyServiceSoapBinding" name="MyService">
         <wsdlsoap:address location="http://localhost:8080/myAPI/services/MyService"/>
      </wsdl:port>
   </wsdl:service>

当我在浏览器中启动https://example.com/myAPI/services/MyService?wsdl时,我可以看到生成的 WSDL 文件并且我遇到了以下问题。

在 web 服务位置,端口 8080 被添加到域中,因此 web 服务不可用。

<wsdl:service name="MyService">
<wsdl:port binding="impl:MyServiceSoapBinding" name="MyService">
<wsdlsoap:address location="https://example.com:8080/myAPI/services/MyService"/>
</wsdl:port>
</wsdl:service>

我不明白出了什么问题,任何帮助表示赞赏。

标签: iissoaptomcat9

解决方案


嗯,找到了。它是Tomcat连接器中的“proxyPort”而不是“proxyport”......


推荐阅读