Exemples de clients de services Web Java Apache Axis2 avancés
Exemples montrant comment construire et utiliser un client Axis2 pour utiliser un ServiceNow service Web.
Axis est essentiellement un moteur SOAP, c’est-à-dire un framework permettant de construire des processeurs SOAP tels que des clients, des serveurs ou des passerelles. La version actuelle d’Axis est écrite en Java. Ce contenu est destiné aux administrateurs système ayant une légère expérience du développement en Java. Pour commencer, vous aurez besoin de Java JDK version 1.4.2 ou supérieure et d’Axis2 version 1.0 ou supérieure.
Créer un projet Java
Cet exemple utilise la version 3.4.2 du SDK Eclipse pour la gestion du code source et l’exécution de la requête Web. Eclipse n’est pas obligatoire.
- Ouvrez Eclipse et, dans le menu, sélectionnez .
- Donnez un nom au projet.
- Vérifiez que l’environnement JRE correct est spécifié.
- Si vous utilisez wsdl2java, exécutez « java -version » sur la ligne de commande et ce sera la version à spécifier pour le JRE spécifique au projet.
- Si vous utilisez le module d’extension Axis2 Codegen, utilisez JRE par défaut.
Figure 1. Projet Java
Générez votre code client Axis2
- Depuis une ligne de commande dans le répertoire bin du dossier axis :
./wsdl2java.sh -uri https://<instance name>.service-now.com/incident.do?WSDL -o /glide/workspace/TestWebService/ - Dans l’exemple ci-dessus :
- Le « -uri » est soit le chemin d’accès dans lequel vous avez enregistré une copie du WSDL vers « .wsdl » ou « .xml », soit l’URL à laquelle le WSDL réside.
- Le « -o » est le chemin sur lequel vous voulez que les fichiers soient écrits. S’ils ne sont pas spécifiés, les fichiers seront écrits à l’emplacement actuel de la corbeille.
- Dans Eclipse, actualisez le projet et les valeurs Stub et CallbackHandler générées doivent maintenant s’afficher
Figure 2. Talon de l’axe
Authentification de base
HttpTransportProperties.Authenticator basicAuthentication = new HttpTransportProperties. Authenticator ( ) ;
basicAuthentication. setUsername ( "admin" ) ;
basicAuthentication. setPassword ( "admin" ) ;
...
ServiceNowStub proxy = new ServiceNowStub ( ) ;
...
proxy._getServiceClient ( ). getOptions ( ). setProperty (org. apache. axis2. transport. http. HTTPConstants. AUTHENTICATE, basicAuthentication ) ;
Compatibilité avec les versions 1.1 et supérieures d’Axis2
La prise en charge du chunking n’est disponible que dans la version HTTP 1.1. Par défaut, la segmentation est activée dans Axis2.xml pour les versions 1.1 et supérieures. ServiceNow ne prend pas en charge le morcellement, vous devrez donc désactiver le fragmentation au moment du déploiement ou de l’exécution.
- Temps de déploiement : Vous pouvez désactiver le chunking HTTP en supprimant ou en commentant l’élément suivant de Axis2.xml
<parameter name= "Transfer-Encoding" >chunked</parameter> - Exécution : l’utilisateur peut désactiver la segmentation à l’aide de la propriété suivante définie dans Client ou Stub, versions 1.1.1 et supérieures uniquement
options.setProperty (org. apache. axis2. transport. http. HTTPConstants. CHUNKED, Boolean. FALSE ) ;
Création de packages uniques
Vous pouvez utiliser le paramètre Axis2 namespace2package (ns2p) pour créer des noms de package uniques. Le paramètre utilise le format suivant :
<Axis path>\bin\wsdl2java.bat -u -p cr2 -ns2p <namespace>=<package name> -uri <wsdl to convert>Par exemple :
<Axis path>\bin\wsdl2java.bat -u -p cr2 -ns2p http://www.service-now.com/change_request=my.change_request -uri change_request