Services Web Java Apache Axis2 Exemples de clients avancés
Exemples montrant comment construire et utiliser un client Axis2 pour consommer un ServiceNow service Web.
Axis est essentiellement un moteur SOAP - un framework pour la construction de 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 en développement Java. Pour commencer, vous aurez besoin de Java JDK version 1.4.2 ou ultérieure et Axis2 version 1.0 ou supérieure.
Créer un projet Java
Cet exemple utilise la version 3.4.2 du SDK Eclipse pour gérer le code source et exécuter la demande 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 il s’agira de 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érer votre code client Axis2
- À partir d’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 dans « .wsdl » ou « .xml », soit l’URL à laquelle le WSDL réside.
- Le « -o » est le chemin où vous voulez que les fichiers soient écrits. S’ils ne sont pas spécifiés, les fichiers seront écrits à l’emplacement actuel de l’emplacement.
- Dans Eclipse, actualisez le projet et le Stub et le CallbackHandler générés doivent maintenant s’afficher.
Figure 2. Tronçon 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 découpage n’est disponible que dans la version 1.1 de HTTP. Par défaut, le découpage est activé dans Axis2.xml pour les versions 1.1 et ultérieures. ServiceNow ne prend pas en charge le découpage, vous devrez donc désactiver le découpage au moment du déploiement ou de l’exécution.
- Temps de déploiement : Vous pouvez désactiver le découpage 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 le découpage à 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