Spécifications Services Web SOAP
MapForce génère tous les codes et scripts nécessaires pour créer un service Web SOAP. Néanmoins, pour que le service Web soit disponible pour les consommateurs, le code généré doit être créé et déployé sur le serveur Apache Tomcat et Axis2 doit être installé. De plus, Apache Ant est nécessaire pour créer le code Java.
Générer et créer le code Java
1.Ouvrir le projet de service Web à partir duquel vous souhaitez générer le code. Consulter la section précédente, Créer des projets de service Web à partir des fichiers WSDL, pour voir un exemple de création de ce type de projet.
2.Dans le menu Projet, cliquer sur Générer du code dans | Java et choisir le répertoire cible. Lorsque la génération du code est achevée, plusieurs dossiers et fichiers sont créés dans le répertoire cible, y compris un répertoire com qui contient des classes génériques Altova, et les véritables classes du projet du service Web.
3.Créer le code Java généré (en fournissant à Apache Ant le fichier build.xml généré par MapForce). En résultat, un fichier Axis Archive File (*.aar) est créé que vous pourrez ensuite déployer sur Axis2.
Note pour les utilisateurs Eclipse : lorsque vous ouvrez le projet généré avec Eclipse, vous verrez éventuellement une erreur du type "The import org.apache cannot be resolved". Dans ce cas, veuillez vous assurer que les bibliothèques Axis2 sont ajoutées au chemin Java. Pour ajouter les bibliothèques Axis2 au chemin Java build dans Eclipse 4.4.2, procéder comme suit :
1.Cliquer avec la touche de droite sur le projet dans le Package Explorer et choisir Propriétés.
2.Cliquer sur Java Build Path.
3.Dans l'onglet Bibliothèques, cliquer sur Ajouter JARs externes et ajouter les bibliothèques Axis2 depuis le dossier <AXIS2_HOME>\lib.
Déployer le service Web
Pour déployer le service Web, suivre une des étapes suivantes :
•Ouvrir la page d'administration Web "Charger Services" d'Axis2 et charger le fichier .aar créé dans l'étape précédente
•Procéder à un chargement manuel. Par exemple, si votre serveur Tomcat a été installé dans le dossier <TOMCAT_HOME>, vous pouvez copier manuellement le fichier .aar dans <TOMCAT_HOME>\webapps\axis2\WEB-INF\services.
Pour consulter un exemple étape par étape, voir Exemple : Générer des services Web SOAP (Java).
Annuler le déploiement
Supprimer le fichier *.aar du dossier <TOMCAT_HOME>\webapps\axis2\WEB-INF\services.
Limites d'Axis2
La prise en charge d'Axis2 pour RPC/encoded est limitée. MapForce peut, néanmoins, générer des services Web RPC/encodés (aussi bien SOAP 1.1 que SOAP 1.2). La limite consiste dans le fait que le WSDL d'origine n'est pas extrait depuis le serveur Web.
Cela signifie par exemple, que http://127.0.0.1/axis2/services/WS2DB?wsdl ne retournera pas un fichier .wsdl utilisable.
Pour des services Web document/literal, l'URL ci-dessus fournira un fichier .wsdl utilisable et correct. Néanmoins, celle-ci sera différente de l'original : les commentaires seront supprimés et les espaces de noms seront modifiés. En revanche, la sémantique sera identique au fichier .wsdl d'origine avec lequel le service a été généré.
Bien qu'Axis2 ne prenne pas en charge RPC/encoded, il est en mesure de générer du WSDL depuis du code Java déployé (code compilé) et du code généré par MapForce pourra donc traiter des messages RPC/encoded ; Axis2 est uniquement utilisé pour le transport.
Problème connu : espaces de noms dans le message de réponse SOAP
Le code généré par MapForce instancie la classe javax.xml.transform.TransformerFactory. Lorsque la mise en place de la classe est chargée, elle peut être lue depuis la propriété de système javax.xml.transform.TransformerFactory (pour plus de détails, veuillez vous référer à la documentation Java de cette classe).
Si la propriété de système javax.xml.transform.TransformerFactory dans votre environnement Java définit la mise en place org.apache.xalan.transformer.TransformerIdentityImpl, le message de réponse SOAP peut être généré avec des espaces de noms incorrects.
Pour éviter que ce problème survienne, il est recommandé d'utiliser la mise en place org.apache.xalan.xsltc.trax.TransformerFactoryImpl. Vous pouvez le faire en ajoutant le paramètre suivant à la Java Virtual Machine (JVM):
-Djavax.xml.transform.TransformerFactory=org.apache.xalan.xsltc.trax.TransformerFactoryImpl |
Les instructions pour ajouter le paramètre au JVM dépendent du système d'exploitation et du serveur que vous utilisez. Les instructions suivantes sont applicables au serveur Apache Tomcat 7.0 configuré pour être exécuté en tant qu'application de service sur Windows 7:
1.Exécuter Tomcat7w.exe (ce fichier est situé dans le sous-dossier \bin du dossier root de distribution Tomcat, CATALINA_HOME).
2.Cliquer sur l'onglet Java.
3.À la fin de la fenêtre "Options Java", saisir : -Djavax.xml.transform.TransformerFactory=org.apache.xalan.xsltc.trax.TransformerFactoryImpl