在本文中,我们向您展示如何在启用了TLS / SSL或https安全连接的Tomcat上部署JAX-WS Web服务。 实际上,答案很简单,只需将其部署为普通的Web服务并在Tomcat服务器上正确配置SSL连接即可。🙂
注意
本文只是我在SSL连接环境中开发Web服务的最后几篇文章的结合。
1.配置Tomcat + SSL
有关详细信息,请参阅本指南– 使Tomcat支持SSL或https连接 。
基本上,只需从受信任的证书提供者处购买证书,或使用JDK的keytool
命令生成用于本地测试的虚拟证书。 并将以下部分放入您的Tomcat server.xml
文件中。
文件:$ 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.部署Web服务
像普通的Web服务一样部署它,请参阅本指南– 在Tomcat Servlet容器上部署JAX-WS Web服务 。
3.测试
配置完成; 您可以使用普通的Web服务客户端以SSL连接访问已部署的Web服务。
例如,
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测试环境,客户端将遇到以下异常,请阅读以下问题和解决方案:
4.完成
您的Web服务具有SSL保护,相当简单,在Web服务站点上没有任何更改; 只需将Tomcat配置为仅支持SSL连接。
参考
翻译自: https://mkyong.com/webservices/jax-ws/deploy-jax-ws-web-services-on-tomcat-ssl-connection/