31 votes

Comment déployer manuellement un service web sur Tomcat 6 ?

J'apprends à développer des services web SOAP avec Java.

Jusqu'à présent, j'ai suivi cet excellent tutoriel.

http://web.archive.org/web/20120626005333/http://java.sun.com/developer/technicalArticles/J2SE/jax_ws_2/

Tout se passe bien, j'ai fait fonctionner mon service web depuis la ligne de commande avec son serveur intégré et ensuite, avec l'aide de NetBeans, je l'ai déployé sur Tomcat.

J'aimerais connaître les étapes pour le déployer manuellement sur Tomcat, afin d'apprendre comment faire et parce que je n'aime pas dépendre d'un IDE.

Je veux dire, j'aimerais savoir comment tout pourrait être fait à partir de la ligne de commande et d'un éditeur de texte.

J'ai également trouvé ce lien qui explique comment déployer manuellement une servlet vers Tomcat,

http://linux-sxs.org/internet_serving/c292.html

mais je n'ai pas trouvé d'article expliquant comment déployer un service web.

Merci beaucoup.

39voto

opensas Points 13527

Comment construire et déployer MANUELLEMENT un service web jax-ws sur tomcat ?

J'essayais de comprendre comment construire et déployer MANUELLEMENT un service web à des fins d'apprentissage.

J'ai commencé par cet excellent article

http://java.sun.com/developer/technicalArticles/J2SE/jax_ws_2/ (nouvelle URL : http://www.oracle.com/technetwork/articles/javase/jax-ws-2-141894.html )

L'idée était de faire le tout en utilisant uniquement un bloc-notes et la ligne de commande.

La seule façon d'y parvenir a été de déployer un service web avec Netbeans, puis de consulter le fichier généré par la guerre à l'adresse suivante \dist\.war (c'est juste un fichier zip, vous pouvez l'ouvrir avec 7zip)

Je laisse ceci au cas où quelqu'un serait intéressé et à des fins de documentation...

Si quelqu'un connaît un moyen plus facile, faites-le moi savoir ! !!

testé sur :

C:\tomcat6\bin>version
Server version: Apache Tomcat/6.0.26
Server built:   March 9 2010 1805
Server number:  6.0.26.0
OS Name:        Windows XP
OS Version:     5.1
Architecture:   x86
JVM Version:    1.6.0_18-b07
JVM Vendor:     Sun Microsystems Inc.

saludos

sas

1. Créez le répertoire suivant c:\java\src\ws

2. Créez le fichier suivant c:\java\src\ws\Adder.java

// c:\java\src\ws\Adder.java
package ws;
import javax.jws.WebService;

@WebService
public class Adder {
 public double add( double value1, double value2 ) {
  return value1 + value2;
 }
}

3. se tenir à c:\java\src\ execute

c:\java\src> javac ws\Adder.java

fichier c:\java\src\ws\Adder.class will be generated

4. Créez la structure de répertoire suivante avec les fichiers suivants

c:\tomcat6\webapps\adder_ws

META-INF
  context.xml
WEB-INF
  classes
    ws
      Adder.class
  lib
    activation.jar
    webservices-api.jar
    webservices-extra.jar
    webservices-extra-api.jar
    webservices-rt.jar
    webservices-tools.jar
  sun-jaxws.xml
  web.xml

5. copier le fichier compilé

copie c:\java\src\ws\Adder.class c:\tomcat6\webapps\adder_ws\WEB-INF\classes\ws\Adder.class

6. c : \tomcat6\webapps\adder_ws\META -INF \context.xml

<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/adder_ws"/>

7. c : \tomcat6\webapps\adder_ws\WEB -INF \web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <listener>
        <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
    </listener>
    <servlet>
        <servlet-name>Adder</servlet-name>
        <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Adder</servlet-name>
        <url-pattern>/add</url-pattern>
    </servlet-mapping>
<!-- not needed
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
-->
</web-app>

8. Configurer WEB-INF\sun-jaxws.xml

fichier : c : \tomcat6\webapps\adder_ws\WEB -INF \sun -jaxws.xml

<?xml version="1.0" encoding="UTF-8"?>
<endpoints version="2.0" xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime">
  <endpoint implementation="ws.Adder" name="Adder" url-pattern="/add"/>
</endpoints>

9. Copier les bibliothèques

fichiers à c : \tomcat6\webapps\adder_ws\WEB -INF \lib

copier les fichiers netbeans de

[netbeans dir]\enterprise\modules\ext\metro\*.*

et

[netbeans dir]\ide\modules\ext\jaxb\activation.jar

10. redémarrer apache

Arrêt : c : \tomcat6\bin\shutdown.bat

Démarrage : c : \tomcat6\bin\startup.bat

11. Test

Ouvrez un navigateur web et allez sur http://localhost:8080/adder_ws/add?wsdl vous pouvez également utiliser un outil comme soapui ( http://www.soapui.org/ ) pour tester le service web

c'est ça, je suppose que maintenant je vais regarder la façon dont eclipses le fait...

4voto

opensas Points 13527

Voici un autre article utile

ça répond en quelque sorte à ma propre question

http://java.dzone.com/articles/jax-ws-deployment-five-minute

4voto

Vinod Singh Points 113

Les articles suivants contiennent un guide étape par étape pour construire et déployer manuellement les services web JAX-WS. Il utilise Ant comme outil de construction.

Création d'un service Web JAX-WS

3voto

Brian Agnew Points 143181

Je m'attendrais à ce que le déployable soit le même pour un service web et une servlet. À savoir, un .war fichier. Vous devriez donc être en mesure de le déployer de la même manière.

2voto

informatik01 Points 5059

Je vois que personne n'a mentionné Didacticiels sur JAX-WS de Mkyong.com.

Dans la section "Sécurité JAX-WS dans Tomcat" de la page "Tutoriel JAX-WS", il y a un tutoriel court, précis et avec des images, exactement ce que le PO voulait :
Déployer des services web JAX-WS sur Tomcat

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X