Beispiele für Java Apache Axis2-Webservices-Clients – erweitert
Beispiele, die zeigen, wie ein Axis2-Client erstellt und verwendet wird, um einen ServiceNow-Webservice zu verwenden.
Axis ist im Wesentlichen eine SOAP-Engine - ein Framework zum Erstellen von SOAP-Prozessoren wie Clients, Server oder Gateways. Die aktuelle Version von Axis ist in Java geschrieben. Dieser Inhalt ist für Systemadmins mit grundlegendem Entwicklungshintergrund in Java gedacht. Zu Beginn benötigen Sie Java JDK Version 1.4.2 oder höher und Axis2 Version 1.0 oder höher.
Ein Java-Projekt erstellen
In diesem Beispiel wird Eclipse SDK Version 3.4.2 zum Verwalten des Quellcodes und zum Ausführen der Webanforderung verwendet. Eclipse ist nicht erforderlich.
- Öffnen Sie Eclipse, und wählen Sie im Menü die Option aus an.
- Geben Sie dem Projekt einen Namen.
- Stellen Sie sicher, dass die richtige JRE angegeben ist.
- Wenn Sie wsdl2java verwenden, führen Sie „java -version“ in der Befehlszeile aus. Dies ist die Version, die Sie für die projektspezifische JRE angeben müssen.
- Wenn Sie das Axis2 Codegen-Plugin verwenden, verwenden Sie die Standard-JRE.
Abbildung : 1. Java-Projekt
Den Axis2-Clientcode erstellen
- Über eine Befehlszeile im bin-Verzeichnis des Axis-Ordners:
./wsdl2java.sh -uri https://<instance name>.service-now.com/incident.do?WSDL -o /glide/workspace/TestWebService/ - Im obigen Beispiel:
- Das „-uri“ ist entweder der Pfad, in dem Sie eine Kopie der WSDL in „.wsdl“ oder „.xml“ gespeichert haben, oder die URL, unter der sich die WSDL befindet.
- Das „-o“ ist der Pfad, in den die Dateien geschrieben werden sollen. Wenn nicht angegeben, werden die Dateien an den aktuellen Ablageort geschrieben.
- Aktualisieren Sie in Eclipse das Projekt, und der generierte Stub und CallbackHandler sollten jetzt angezeigt werden.
Abbildung : 2. Axis Stub
Basic Authentication
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 ) ;
Kompatibilität mit Axis2-Versionen 1.1 und höher
Chunking-Unterstützung ist nur in HTTP Version 1.1 verfügbar. Standardmäßig ist Chunking ab Version 1.1 in Axis2.xml aktiviert. ServiceNow unterstützt kein Chunking, daher müssen Sie das Chunking in der Bereitstellungszeit oder Laufzeit deaktivieren.
- Bereitstellungszeit: Man kann das HTTP-Chunking deaktivieren, indem man folgendes Element aus Axis2.xml entfernt oder auskommentiert.
<parameter name= "Transfer-Encoding" >chunked</parameter> - Laufzeit: Der Benutzer kann das Chunking mithilfe der folgenden im Client oder Stub (nur Version 1.1.1) festgelegten Eigenschaft deaktivieren.
options.setProperty (org. apache. axis2. transport. http. HTTPConstants. CHUNKED, Boolean. FALSE ) ;
Eindeutige Pakete erstellen
Sie können den Axis2-Parameter „namespace2package (ns2p)“ verwenden, um eindeutige Paketnamen zu erstellen. Der Parameter verwendet dieses Format:
<Axis path>\bin\wsdl2java.bat -u -p cr2 -ns2p <namespace>=<package name> -uri <wsdl to convert>Beispiel:
<Axis path>\bin\wsdl2java.bat -u -p cr2 -ns2p http://www.service-now.com/change_request=my.change_request -uri change_request