2017-10-21 68 views
0

我在我的JAVA项目(1.7)中有一个遗留的SOAP WS,它目前给出了一些麻烦。在它的WEB-INF/WSDL/*。WSDL文件有此块WSDL xsd从https导入到http:443在部署时

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

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

回答

0

对谁有帮助。

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

,所以你需要

1)改变你的连接器用于HTTPS(或不管它是你yousing为您的web应用程序

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

2)添加和明确的WSDL端口在你的独立。 XML

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