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, 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 gérer le code source et exécuter la requête Web. Eclipse n’est pas nécessaire.
- 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 le 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 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 dans lequel vous souhaitez que les fichiers soient écrits. S’il n’est pas spécifié, les fichiers seront écrits à l’emplacement de la corbeille actuelle.
- Dans Eclipse, actualisez le projet et le Stub et le CallbackHandler générés doivent maintenant être affichés
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 ulté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 ultérieures. ServiceNow ne prend pas en charge la segmentation, vous devrez donc désactiver la segmentation 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 des propriétés suivantes définies dans Client ou Stub, versions 1.1.1 et ulté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 packages 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