部署

时间:2017-10-21 13:49:46

标签: web-services soap wsdl

我的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

1 个答案:

答案 0 :(得分:0)

对谁可能有所帮助。

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

所以你需要

1)将您的连接器更改为https(或者您正在为Web应用程序注意的任何内容

<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>