Déployer les services Web JAX-WS sur une connexion SSL Tomcat

Dans cet article, nous vous montrons comment déployer un service Web JAX-WS sur Tomcat avec la connexion sécurisée TLS/SSL ou https activée. En réalité, la réponse est assez simple, il suffit de le déployer en tant que service Web normal et de configurer correctement la connexion SSL sur votre serveur Tomcat :)

1. Configurer Tomcat SSL

En gros, achetez simplement un certificat auprès du fournisseur de certificats de confiance ou utilisez la commande keytool de JDK pour générer un certificat factice pour le test de localhost. Et mettez la partie suivante dans votre fichier server.xml de Tomcat.

Fichier: $ 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"/>
//...
Redémarrez Tomcat et votre Tomcat est maintenant pris en charge pour la connexion SSL, par exemple __https://localhost: 8443__

===  2. Déployer le service Web

Déployez-le comme un service Web normal, consultez ce guide - lien://services Web/jax-ws/deploy-jax-services-web-services-sur-tomcat/[Déployez les services Web JAX-WS sur le conteneur de servlets Tomcat].

===  3. Testez-le

La configuration est terminée. vous pouvez accéder au service Web déployé via une connexion SSL à l'aide d'un client de service Web normal.

Par exemple,
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());
**  Remarque **  Pour l'environnement de test SSL localhost, le client utilisera les exceptions suivantes. Veuillez lire le problème et la solution ci-dessous:

. lien://services web/jax-ws/hôte-java-security-cert-certificateexception-no-name-matching-local-found/[java.security.cert.CertificateException:

Aucun nom correspondant à l'hôte local trouvé]. link://services Web/jax-ws/suncertpathbuilderexception-impossible-à-trouver-valide-certification-chemin-à-cible-demandée/[SunCertPathBuilderException:

impossible de trouver un chemin de certification valide vers la cible demandée]

===  4. Fait

Votre service Web est en protection SSL, plutôt simple, aucun changement sur le site du service Web; configurez simplement votre Tomcat pour prendre en charge la connexion SSL uniquement.

=====  Référence

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

. lien://services web/jax-ws/exemple jax-ws-hello-world/[JAX-WS hello

exemple du monde]

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