WSDL xsd从https导入到http:443在部署时
问题描述:
我在我的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
答
对谁有帮助。
当部署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>