web-dev-qa-db-fra.com

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, mon service Web fonctionne à partir de la ligne de commande avec son serveur intégré, puis, 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 cela se fait 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 un servlet sur Tomcat,

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

mais je n'ai trouvé aucun article expliquant comment déployer un service Web.

Merci beaucoup.

31
opensas

Comment créer et déployer MANUELLEMENT un service Web jax-ws sur Tomcat

J'essayais de comprendre comment créer et déployer MANUELLEMENT un service Web à des fins d'apprentissage.

J'ai commencé avec 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 que j'ai pu obtenir était de déployer un service Web avec des netbeans, puis de jeter un œil au fichier généré par la guerre dans\dist\.war (c'est juste un fichier Zip, vous pouvez l'ouvrir avec 7Zip)

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

Si quelqu'un connaît un moyen plus simple, 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. debout à 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épertoires 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.classc:\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. Config 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. Copie de bibliothèques

fichiers dans c:\Tomcat6\webapps\adder_ws\WEB-INF\lib

copier des fichiers netbeans depuis

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

et

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

10. redémarrez Apache

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

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

11. Test

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

ça y est, je suppose que maintenant je vais voir comment les éclipses le font ...

39
opensas

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

Création du service Web JAX-WS

4
Vinod Singh

voici un autre article utile

ça répond à ma propre question

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

4
opensas

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

3
Brian Agnew

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

Dans la section "JAX-WS Security in Tomcat" de la page "JAX-WS Tutorial", il y a un court, au point et avec des images tutoriel, juste ce que l'OP voulait:
Déployer les services Web JAX-WS sur Tomcat

2
informatik01