В этой статье мы покажем вам, как развернуть веб-службу JAX-WS на Tomcat с включенным безопасным соединением TLS/SSL или https. На самом деле, ответ довольно прост, просто разверните его как обычный веб-сервис и правильно настроите SSL-соединение на вашем сервере Tomcat :)
1. Настройте Tomcat + SSL
Для получения дополнительной информации см. Это руководство - ссылка://tomcat/how-to-configure-tomcat-to-support-ssl-или-https/[Сделать Tomcat для поддержки соединения SSL или https].
По сути, просто купите сертификат у доверенного поставщика сертификатов или используйте команду JDK
keytool
, чтобы создать фиктивный сертификат для тестирования на локальном хосте. И поместите следующую часть в ваш файл Tomcat
server.xml
.
File: $ Tomcat \ conf \ server.xml
….//… <!-- Define a SSL HTTP/1.1 Connector on port 8443 This connector uses the JSSE configuration, when using APR, the connector should be using the OpenSSL style configuration described in the APR documentation -→
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="c:\your keystore file" keystorePass="your keystore password"/> //...
Перезапустите Tomcat, и теперь ваш Tomcat поддерживает SSL-соединение, например, __https://localhost: 8443__ === 2. Развертывание веб-службы Разверните его как обычный веб-сервис, см. Это руководство - ссылка://webservices/jax-ws/deploy-jax-ws-web-services-on-tomcat/[Развернуть веб-сервисы JAX-WS в контейнере сервлетов Tomcat]. === 3. Проверьте это Конфигурация сделана; Вы можете получить доступ к развернутой веб-службе через соединение SSL с помощью обычного клиента веб-службы. Например,
URL url = new URL("https://localhost:8443/HelloWorld/hello?wsdl"); QName qname = new QName("http://ws.mkyong.com/", "HelloWorldImplService"); Service service = Service.create(url, qname);
HelloWorld hello = service.getPort(HelloWorld.class); System.out.println(hello.getHelloWorldAsString());
** Примечание ** . Для среды тестирования localhost SSL клиент получит следующие исключения. Пожалуйста, прочтите проблему и решение ниже: , ссылка://WebServices/JAX-WS/-без имени Java-безопасности CERT-certificateexception синхронизма-локальный обретенной/[java.security.cert.CertificateException: Имя, соответствующее localhost не найдено], ссылка://WebServices/JAX-WS/suncertpathbuilderexception-неспособный найти, по-недействительный-сертификационную-путь-к-запрашиваемой-мишени/[SunCertPathBuilderException: невозможно найти действительный путь сертификации к запрошенной цели] === 4. Готово Ваш веб-сервис защищен SSL, довольно просто, без изменений на сайте веб-сервиса; просто настройте ваш Tomcat на поддержку только SSL-соединения. ===== Ссылка , http://en.wikipedia.org/wiki/SSL[Wiki - SSL-соединение] , ссылка://webservices/jax-ws/jax-ws-hello-world-example/[JAX-WS привет пример мира] ссылка://тег/https/[https]ссылка://тег/jax-ws/[jax-ws]ссылка://тег/ssl/[ssl]ссылка://тег/tomcat/[tomcat]ссылка://тег/веб-службы/[веб-службы]