Interstage Application Server SOAPサービス ユーザーズガイド
目次 索引 前ページ次ページ

第4章 Messaging方式のアプリケーションの実装> 4.2 送信アプリケーションの作成

4.2.4 プロキシ、認証、セションなどHTTP接続情報の追加

 送信アプリケーションでHTTP接続情報を設定するには、以下のクラスを使用します。

●パッケージ名:com.fujitsu.interstage.soapx.soap

クラス名

メソッド

説明

SOAPConnectionImpl
extends javax.xml.soap.SOAPConnection

public void
setProxy( String proxyHostName, int port )

プロキシのホスト(proxyHostName)、ポート番号(port)を設定します。

public void
setProxy( String proxyHostName,

int port, String authName,
String authPassword )

プロキシのホスト(proxyHostName)、ポート番号(port)、HTTPベーシック認証ユーザ名(authName)、HTTPベーシック認証パスワード(authPassword)を設定します。

public void
setProxyUserName( String authName )

プロキシのHTTPベーシック認証ユーザ名(authName)を設定します。

public void
setProxyPassword( String authPassword )

プロキシのHTTPベーシック認証パスワード(authPassword)を設定します。

public void
setUserName ( String authName )

Webサービスの認証ユーザ名(authName)を設定します。HTTPベーシック認証およびSOAPメッセージに対するユーザ認証に有効です。SOAPメッセージに対するユーザ認証については“セキュリティシステム運用ガイド”の“ユーザ認証、SOAP電子署名、XML暗号を使用する方法”の“SOAPメッセージに対するユーザ認証の設定”を参照してください。

public void
setPassword ( String authPassword)

Webサービスの認証パスワード(authPassword)を設定します。HTTPベーシック認証およびSOAPメッセージに対するユーザ認証に有効です。SOAPメッセージに対するユーザ認証については“セキュリティシステム運用ガイド”の“ユーザ認証、SOAP電子署名、XML暗号を使用する方法”の“SOAPメッセージに対するユーザ認証の設定”を参照してください。

public void
setMaintainSession(boolean maintainsSession)

HTTPセション継続を行うかどうかを設定します。

public void setTimeout( int timeout )

接続のタイムアウト時間をミリ秒で設定します。

■プロキシを使用する方法

 プロキシ接続を使用する場合はjavax.xml.soap.SOAPConnectionオブジェクトを一旦com.fujitsu.interstage.soapx.soap.SOAPConnectionImplクラスにキャストし、プロキシ情報設定メソッドを呼び出します。

 import javax.xml.soap.*;
 import com.fujitsu.interstage.soapx.soap.SOAPConnectionImpl;

       .....
   SOAPConnectionFactory scf = SOAPConnectionFactory.newInstance();
   SOAPConnection conn = scf.createConnection();

   //**プロキシ情報の設定1**
   ((SOAPConnectionImpl)conn).setProxy( "proxyHostName", 8080 );

   //**プロキシ情報の設定2**
   ((SOAPConnectionImpl)conn).setProxy( "proxyHostName", 8080, "suzuki", "taro" );

   //**プロキシ情報の設定3**
   ((SOAPConnectionImpl)conn).setProxy( "proxyHostName", 8080 );
   ((SOAPConnectionImpl)conn).setProxyUserName( "suzuki" );
   ((SOAPConnectionImpl)conn).setProxyPassword( "taro" );

      .....

 プロキシ接続を使用する場合は以下の項目を設定します。

 プロキシホスト名とポート番号は必須項目です。ユーザ名やパスワードを使用せずにプロキシサーバへ接続する場合はホスト名とポート番号のみを設定します(上記例1)。プロキシサーバへの接続にユーザ名とパスワードが必要な場合はすべての項目をまとめて設定する方法(上記例2)と別々に設定する方法(上記例3)がありますので適宜選択してください。

■Webサービスのユーザ名/パスワードを設定する方法

 Webサービスでベーシック認証を行っている場合、またはSOAPメッセージに対するユーザ認証を行っている場合は、javax.xml.soap.SOAPConnectionオブジェクトをいったんcom.fujitsu.interstage.soapx.soap.SOAPConnectionImplクラスにキャストし、パスワード認証情報設定メソッドを呼び出してユーザ名とパスワードを設定します。SOAPメッセージに対するユーザ認証については、“セキュリティシステム運用ガイド”の“ユーザ認証、SOAP電子署名、XML暗号を使用する方法”の“SOAPメッセージに対するユーザ認証の設定”を参照してください。
 以下に例を示します。

 import javax.xml.soap.*;
 import com.fujitsu.interstage.soapx.soap.SOAPConnectionImpl;

      .....
   SOAPConnectionFactory scf = SOAPConnectionFactory.newInstance();
   SOAPConnection conn = scf.createConnection();

   // パスワード認証情報の設定
   ((SOAPConnectionImpl)conn).setUserName( "suzuki" );
   ((SOAPConnectionImpl)conn).setPassword( "taro" );

      .....

■セション管理を使用する方法

 セション管理を行うことで、同じ送信アプリケーションからの複数回のリクエストを受信アプリケーションの同じインスタンスで処理できます。また、セション管理を行うことによって、前回の処理結果を引き継ぐことが可能となり、継続的な処理を行うことができます。
 セション管理を使用する場合はjavax.xml.soap.SOAPConnectionオブジェクトを一旦com.fujitsu.interstage.soapx.soap.SOAPConnectionImplクラスにキャストし、セション管理設定メソッドを呼び出します。

 import javax.xml.soap.*;
 import com.fujitsu.interstage.soapx.soap.SOAPConnectionImpl;

      .....
   SOAPConnectionFactory scf = SOAPConnectionFactory.newInstance();
   SOAPConnection conn = scf.createConnection();

   // セション管理情報の設定
   ((SOAPConnectionImpl)conn).setMaintainSession(true);

      .....

 セション管理の情報を保持するように設定されたcom.fujitsu.interstage.soapx.soap.SOAPConnectionImplクラスのインスタンスを使用して受信アプリケーションを呼び出すことで、セションを継続できます。

 com.fujitsu.interstage.soapx.soap.SOAPConnectionImpl.setMaintainSessionメソッドを、パラメタに"false"を指定して呼び出した場合、このcom.fujitsu.interstage.soapx.soap.SOAPConnectionImplクラスのインスタンスはセション管理の情報を破棄し、セションは継続されなくなります。

■接続のタイムアウトを設定する方法

 接続先から応答がない場合に接続を切断するタイムアウト時間を設定する場合は、javax.xml.soap.SOAPConnectionオブジェクトをいったんcom.fujitsu.interstage.soapx.soap.SOAPConnectionImplクラスにキャストし、タイムアウト設定メソッドを呼び出してタイムアウト時間をミリ秒で設定します。明示的にタイムアウト時間を設定しなかった場合には、デフォルトのタイムアウト時間(5分)が適用されます。

 import javax.xml.soap.*;
 import com.fujitsu.interstage.soapx.soap.SOAPConnectionImpl;

      .....
   SOAPConnectionFactory scf = SOAPConnectionFactory.newInstance();
   SOAPConnection conn = scf.createConnection();

   // タイムアウト時間の設定(15分)
   ((SOAPConnectionImpl)conn).setTimeout( 15*60*1000 );

      .....

目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005