mardi 17 juin 2008

Débuter avec axis2

Installer Axis2 sous Linux

  • Télécharger Axis2
  • Extraire le jar dans /usr/axis2-1.4
  • Effectuer des liens ln -s /usr/axis2-1.4/bin/wsdl2java.sh /usr/bin/wsdl2java.sh
  • Effectuer des liens ln -s /usr/axis2-1.4/bin/axis2.sh /usr/bin/axis2.sh
  • Modifier la première ligne dir=/usr/axis2-1.4/bin/ avec le chemin d'installation réel dans /usr/axis2-1.4/bin/axis2.sh et /usr/axis2-1.4/bin/wsdl2java.sh
  • Télécharger ANT
  • Extraire le jar dans /usr/apache-ant-xxx
  • Effectuer des liens ln -s /usr/apache-ant-xxx/bin/ant /usr/bin/
  • Exporter la variable export AXIS2_HOME=/usr/axis2-1.4



Supprimer le SOAP12 sur axis2
Modifier le fichier axis2.xml
   <parameter name="disableSOAP12" locked="true">true</parameter>


Utiliser avec Hibernate 3.6.2

Il faut utiliser antlr-1.7.7 et faire ettention au classpath d'une manière générale.
(Le classloader de l'application axis ne permet pas de redescendre plus bas au scope service s'il utilise le scope application.)
Concrètement cela signifie qu'il est impossible de mettre le fichier hibernate dans les librairies de AXIS.
Effectuer une première génération

  • Créer un répertoire pour votre projet
  • wsdl2java.sh -uri http://urlduwebservice.com/monservice
  • Taper ant

Structure d'une archive AXIS2
On peut déployer un service axis sous forme d'un fichier aar.

META-INF/services.xml
lib/*.jar



Il est également possible de le déployer sous forme d'un répertore ayant la même structure.

Note pour se servir du mapping adb à partir de POJO.

Si le bean retourné contient une liste d'élément, il n'est pas possible de se servir des typecast de liste, il faut se servir de tableau.

Génerer un Web Service à partir d'un WSDL et de Maven

Ajouter le bloc

<build>
<plugins>
<plugin>
<groupId>org.apache.axis2.maven2</groupId>
<artifactId>axis2-wsdl2code-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>wsdl2code</goal>
</goals>
<configuration>
<package>com.foo.myservice</package>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>




mvn -U axis2-wsdl2code:wsdl2code -DwsdlFile=http://10.202.48.12:8080/axis2/services/OrganisationControleService?wsdl -Daxis2.wsdl2code.package=joe.bigood


Il faut rajouter manuellement et en local la dépendance au plugin.

<dependency>
<groupId>wsdl4j</groupId>
<artifactId>wsdl4j</artifactId>
<version>1.6.2</version>
</dependency>

Aucun commentaire: