【问题标题】:WSDL xsd import from https to http:443 when deployed部署时从 https 到 http:443 的 WSDL xsd 导入
【发布时间】:2017-10-26 21:59:13
【问题描述】:

我的 JAVA 项目 (1.7) 中有一个遗留的 SOAP WS,它目前正在给一些麻烦。在它的 WEB-INF/wsdl/*.wsdl 文件中有这个块

<xsd:schema>
  <xsd:import namespace="https://myUrl.com/" schemaLocation="myService_schema.xsd"/>
</xsd:schema>

在部署之后,当我通过 wget 下载它的 wsdl 时,我得到以下信息

<xsd:schema xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="https://o2o-staging.beeweeb.com/" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:import namespace="https://myUrl.com/" schemaLocation="http://myUrl.com:443/service-ws/myService?xsd=myService_schema.xsd"/>
</xsd:schema>

如您所见,xsd 导入地址https://myUrl.com 变为http://myUrl.com:443,从而使服务无法访问,因为 nginx 抱怨 400 错误:普通 HTTP 请求已发送到 HTTPS 端口

我确实做了一些搜索,并没有发现与此同化的问题。有人可以向我解释发生了什么,以及如何解决它吗?命名空间 url https://myUrl.com 应该真的保持这种状态,是否有可能避免它变成 http://myUrl.com:443 ? 我的服务器是 Jboss 7.1

【问题讨论】:

    标签: web-services soap wsdl


    【解决方案1】:

    可能对谁有帮助。

    当一个soap webservice 被部署时,jboss 重新处理你在WEB-INF/wsdl 中的所有wsdl 和xsd。我的问题是,在我的standalone.xml 中有一个 http 连接器,而我实际上需要一个 https 连接器。

    所以你需要

    1) 将您的连接器更改为 https(或者您正在为您的网络应用使用的任何连接器

    <connector name="http" protocol="HTTP/1.1" scheme="https" socket-binding="http" 
     secure="true" proxy-port="443"/> 
    

    2) 在你的standalone.xml 中添加和显式的wsdl 端口

    <subsystem xmlns="urn:jboss:domain:webservices:1.2">
    <modify-wsdl-address>true</modify-wsdl-address>
    <wsdl-host>jbossws.undefined.host</wsdl-host>
    <wsdl-port>443</wsdl-port>
    

    【讨论】:

      猜你喜欢
      • 2012-08-20
      • 1970-01-01
      • 2016-09-01
      • 2012-03-25
      • 1970-01-01
      • 1970-01-01
      • 2014-11-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多