この記事では、TLS/SSLまたはhttpsセキュア接続を有効にしてTomcatにJAX-WS Webサービスをデプロイする方法を説明します。実際には、答えは非常に単純で、通常のWebサービスとして展開し、Tomcatサーバー上にSSL接続を正しく設定しました。
1. Tomcat SSLを設定する
詳細については、このガイドのリンクを参照してください。//Tomcat/how-to-configure-tomcat-to-support-ssl-or-https/[SSLまたはhttps接続をサポートするTomcatを作成する]
基本的には、信頼できる証明書プロバイダから証明書を購入するか、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サービスと同じようにデプロイしてください。このマニュアルは、webservices/jax-ws/deploy-jax-ws-web-services-on-tomcat/[Tomcatサーブレットコンテナの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());
** Note ** + localhost SSLテスト環境の場合、クライアントは以下の例外を打つでしょう。以下の問題と解決策をお読みください: . webservices/jax-ws/java-security-cert-certificateexception-no-name-matching-localhost-found/[java.security.cert.CertificateException: 名前が一致するlocalhostが見つかりません]。リンク://webservices/jax-ws/suncertpathbuilderexception-unable-to-find-valid-certification-path-to-requested-target/[SunCertPathBuilderException: 要求されたターゲットへの有効な証明経路を見つけることができません] === 4.完了 あなたのWebサービスはSSL保護されていて、シンプルで、Webサービスサイトの変更はありません。 SSL接続のみをサポートするようにTomcatを設定してください。 ===== リファレンス . http://en.wikipedia.org/wiki/SSL[Wiki - SSL接続] . link://webservices/jax-ws/jax-ws-hello-world-example/[JAX-WS hello 世界の例] リンク://タグ/https/[https]リンク://タグ/jax-ws/[jax-ws]リンク://タグ/ssl/[ssl]link://tag/tomcat/[tomcat]link://タグ/web-services/[webサービス]