Java Apache Axis2 Web サービスクライアントの例:advanced
ServiceNow Web サービスを使用するための Axis2 クライアントの構築方法と使用方法を示す例。
Axis は基本的に SOAP エンジンです。これは、クライアント、サーバー、ゲートウェイなどの SOAP プロセッサーを構築するためのフレームワークです。現行バージョンの Axis は Java で記述されています。このコンテンツは、Java での開発経験が少ないシステム管理者を対象としています。開始するには、Java JDK バージョン 1.4.2 以降および Axis2 バージョン 1.0 以降が必要です。
Java プロジェクトの作成
この例では、ソースコードの管理と Web 要求の実行に Eclipse SDK バージョン 3.4.2 を使用します。Eclipse は必須ではありません。
- Eclipseを開き、メニューから .
- プロジェクトに名前を付けます。
- 正しい JRE が指定されていることを確認します。
- wsdl2java を使用している場合は、コマンドラインで「java -version」を実行します。これがプロジェクト固有の JRE に指定するバージョンになります。
- Axis2 Codegen プラグインを使用している場合は、デフォルトの JRE を使用します。
図 : 1. Java プロジェクト
Axis2 クライアントコードの生成
- axis フォルダーの bin ディレクトリーのコマンドラインから次のコマンドを実行します。
./wsdl2java.sh -uri https://<instance name>.service-now.com/incident.do?WSDL -o /glide/workspace/TestWebService/ - 上記の例では、次のようになります。
- 「-uri」は、wsdl のコピーを「.wsdl」または「.xml」に保存したパス、または WSDL が存在する URL です。
- 「-o」は、ファイルを書き込むパスです。指定しない場合、ファイルは現在の bin の場所に書き込まれます。
- Eclipse でプロジェクトを更新すると、今度は生成された Stub と CallbackHandler が表示されます。
図 : 2. Axis スタブ
基本認証
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 ) ;
Axis2 バージョン 1.1 以降との互換性
チャンクのサポートは、HTTP バージョン 1.1 でのみ使用できます。デフォルトでは、バージョン 1.1 以降の Axis2.xml でチャンクが有効になっています。ServiceNow ではチャンクをサポートしていないため、展開時またはランタイムにチャンクを無効にする必要があります。
- 展開時:Axis2.xml から次の要素を削除またはコメントアウトすることで、HTTP チャンクを無効にできます。
<parameter name= "Transfer-Encoding" >chunked</parameter> - ランタイム:バージョン 1.1.1 以降でのみ、クライアントまたはスタブの次のプロパティセットを使用してチャンクを無効にできます。
options.setProperty (org. apache. axis2. transport. http. HTTPConstants. CHUNKED, Boolean. FALSE ) ;
一意のパッケージの作成
一意のパッケージ名を作成するには、Axis2 パラメーターの namespace2package (ns2p) を使用します。パラメータの形式は次のとおりです。
<Axis path>\bin\wsdl2java.bat -u -p cr2 -ns2p <namespace>=<package name> -uri <wsdl to convert>例:
<Axis path>\bin\wsdl2java.bat -u -p cr2 -ns2p http://www.service-now.com/change_request=my.change_request -uri change_request