Stellen Sie JAX-WS-Webdienste auf einer Tomcat + SSL-Verbindung bereit

In diesem Artikel zeigen wir Ihnen, wie Sie einen JAX-WS-Webdienst auf Tomcat mit aktivierter TLS/SSL- oder HTTPS-Verbindung bereitstellen. Die Antwort ist eigentlich ganz einfach: Sie stellt sie einfach als normalen Webdienst bereit und konfiguriert die SSL-Verbindung ordnungsgemäß auf Ihrem Tomcat-Server. :)

1. Konfigurieren Sie Tomcat SSL

Weitere Informationen finden Sie in diesem Handbuch - Tomcat muss SSL- oder https-Verbindung unterstützen .

Kaufen Sie im Grunde nur ein Zertifikat von einem vertrauenswürdigen Zertifikatanbieter oder verwenden Sie den JDK-Befehl "keytool", um ein Dummy-Zertifikat für Localhost-Tests zu erstellen. Fügen Sie den folgenden Abschnitt in Ihre Tomcat-Datei "server.xml" ein.

Datei: $ 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"/>
//...
Starten Sie Tomcat neu. Jetzt wird Ihre Tomcat-SSL-Verbindung unterstützt, z. B. __https://localhost: 8443__.

===  2. Stellen Sie den Webdienst bereit

Stellen Sie ihn wie einen normalen Webdienst bereit. Siehe dieses Handbuch - link://webservices/jax-ws/deploy-jax-ws-web-services-on-tomcat/[JAX-WS-Webdienste auf Tomcat-Servlet-Container bereitstellen].

===  3. Testen Sie es

Die Konfiguration ist abgeschlossen. Sie können auf den bereitgestellten Webdienst über eine SSL-Verbindung zugreifen, indem Sie einen normalen Webdienstclient verwenden.

Zum Beispiel,
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());
**  Hinweis **  + Für die localhost SSL-Testumgebung trifft der Client folgende Ausnahmen.

. link://webservices/jax-ws/java-security-cert-certificateexception-no-name-passende-localhost-found/[java.security.cert.CertificateException:

Kein passender Name für localhost gefunden]. link://webservices/jax-ws/suncertpathbuilderexception-ungültiger-zertifizierungspfad-zum-angefordertes-ziel/gefunden[SunCertPathBuilderException:

Es wurde kein gültiger Zertifizierungspfad für das angeforderte Ziel gefunden.]

===  4. Fertig

Ihr Webservice ist in SSL-Schutz, eher einfach, keine Änderungen an der Webservice-Site. Konfigurieren Sie einfach Ihren Tomcat so, dass er nur eine SSL-Verbindung unterstützt.

=====  Referenz

. http://en.wikipedia.org/wiki/SSL[Wiki - SSL-Verbindung]

. link://webservices/jax-ws/jax-ws-hallo-welt-beispiel/[JAX-WS hallo

Weltbeispiel]

link://tag/https/[https]link://tag/jax-ws/[jax-ws]link://tag/ssl/[ssl]link://tag/tomcat/[tomcat]link://tag/web-services/[web-dienstleistungen]