Я развернул веб-сервис JAX-WS, размещенный в JBoss 7.1.1. Доступ к веб-сервису осуществляется через обратный прокси-сервер. Чтобы получить доступ к сервису из публичного Интернета, это должно быть сделано по протоколу https, но связь между обратным прокси-сервером и JBoss осуществляется по протоколу http. Поэтому хост, присутствующий в файле wsdl, — это http, <soap:address location="http://example.com/WS"/>
и он должен быть <soap:address location="https://example.com/WS"/>
.
Конфигурация JBoss выглядит следующим образом:
modify-wsdl-addres = true
wsdl-host = jbossws.undefined.host
Вот ссылка на конфигурацию веб-сервисов: https://docs.jboss.org/author/display/AS71/Web+services+configuration
Но я могу найти, где принудительно установить протокол https в адресе SOAP.
решение1
Конфигурации подсистемы web
и webservices
работают вместе, предоставляя URL-адрес конечной точки (а также URL-адреса для операторов xs:import).
В webservices
конфигурацию добавьте следующую строку
<wsdl-port>443</wsdl-port>
В web
конфигурации измените схему http-коннектора с http
на https
и добавьтеproxy-port="443"
Итак, это будет выглядеть так:
<subsystem xmlns="urn:jboss:domain:web:2.2" default-virtual-server="default-host" native="false">
<connector name="http" protocol="HTTP/1.1" scheme="https" socket-binding="http"
secure="true" proxy-port="443"/>
...
</subsystem>
<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>
...
</subsystem>