Web サービスのバックエンド選択

次のいずれのエンティティも JWS (JRun Web Service:JRun Web サービス) としてパブリッシュできます。

このセクションでは、Web サービスのバックエンドに関する一般情報について説明します。

JWS ファイル

JWS ファイルとは、最も基本的なタイプの Web サービスバックエンドです。サービスクラスのソースコードがあり、カスタムデータタイプのマッピングや、Axis がリクエストを処理する方法のカスタム設定をサービスが必要とない場合に適しています。JWS ファイルは .jws 拡張子を持つ Java ソースファイルです。これを Web サービスとしてダイナミックにデプロイできます。JSP と同様に、JWS ファイルも自動的にコンパイルされます。

ソースファイルを Web からアクセス可能な Web アプリケーションディレクトリ (WEB-INF または META-INF 以外) に配置し、ファイルの拡張子を .jws に変更することによって、Java クラスを Web サービスとしてダイナミックにデプロイできます。Axis はクラスを自動的にコンパイルし、SOAP 呼び出しを Java メソッド呼び出しに変換します。JWS は基本的な Web サービスには適していますが、Java と XML 間のカスタムデータタイプのマッピングは使用できません。また、ハンドラが Axis のリクエスト処理方法を制御するように設定することもできません。カスタムデータタイプのマッピングおよび Axis ハンドラの詳細については、<JRun のルートディレクトリ>/docs/html/thirdparty/axis ディレクトリの『Axis User Guide』を参照してください。

Java クラスファイル

サービスクラスのソースコードがない場合、またはサービスクラスが基本データタイプでないオペレーション (メソッド) パラメータを取る場合、Java クラスは Web サービスバックエンドに適しています。

Java クラスをデプロイするには、Web アプリケーションの server-config.wsdd ファイルに java:RPC のプロバイダ値を指定する RPC スタイルの service 要素を作成する必要があります。次に例を示します。

<service name="AxisSampleJavaClassService" provider="java:RPC">
  <parameter name="methodName" value="*"/>
  <parameter name="className" value="SampleJavaClass"/>
</service>

次の表で、PRC スタイルの service 要素パラメータを説明します。
パラメータ
説明
methodName
許可されるメソッド。すべてのメソッドの場合は *、複数のメソッドの場合はスペースで区切ったリストを使用します。
className
バックエンド実装クラスの名前。
allowedRoles
(オプション) サービスにアクセスできるロールのカンマで区切ったリスト。サービス認証が有効な場合に使用します。
詳細については、 「Web サービスのセキュリティ」
参照してください。

複雑なデータタイプのマッピングが必要な Web サービスを使用する場合は、Axis の bean マッピング機能を利用できます。Axis は、get および set アクセッサの標準 JavaBeans パターンに従っている Java クラスを自動的に直列化および直列化の解除を行うことができます。オペレーションパラメータが JavaBeans オブジェクトに対応しているかぎり、bean マッピングを server-config.wsdd ファイルに含め、そのタイプのオブジェクトを特定の XML QName にマッピングでき、自動的に直列化および直列化の解除を行うことができます。

Web サービスの WSDL ドキュメントからクライアントプロキシコードを生成するときは、WSDL2Java ツールが必要な JavaBeans を自動的に生成します。bean マッピングの詳細については、弟 23 章、「Axis bean シリアライザによるデータタイプマッピング」 を参照してください。

ステートレスセッション bean

CMT (Container-managed transactions:コンテナ管理トランザクション) を提供する場合、またはセッション bean がエンティティ bean のファサードとして動作する場合、ステートレスセッション bean は Web サービスバックエンドに適しています。

ステートレスセッション bean をデプロイするには、Web アプリケーションの
server-config.wsdd ファイルに Java:EJB のプロバイダ値を指定する service 要素を作成する必要があります。次に例を示します。

<service name="AxisSampleLoanEjbService" provider="java:EJB">
  <parameter name="allowedMethods" value="calculate"/>
  <parameter name="jndiPassword" value="AxisPassword"/>
  <parameter name="beanJndiName" 
value="java:sample_ws.SampleLoanEjbHome"/>
  <parameter name="homeInterfaceName" value="ejbeans.SampleLoanHome"/>
  <parameter name="jndiUser" value="AxisUser"/>
 </service>

次の表で、service 要素パラメータを説明します。
パラメータ
説明
allowedMethods
(オプション) 許可されるメソッド。すべてのメソッドの場合は *、複数のメソッドの場合はスペースで区切ったリストを使用します。
jndiPassword
(オプション) bean にアクセスするパスワード。パススルー
セキュリティにのみ必要です。
jndiURL
bean の JNDI URL。この値は、<JRun のルートディレクトリ>/servers/<JRun のサーバ>/SERVER-INF/jndi.properties
ファイル内の java.naming.provider.url の値と一致する必要が
あります。
jndiContextClass
bean の JNDI コンテキストクラス。
beanJndiName
bean の JNDI 名。
homeInterfaceName
bean のホームインターフェイス名。
jndiUser
(オプション) bean にアクセスするユーザー名。ユーザー名とパスワードを入力する必要のないパススルーセキュリティにのみ必要です。

クラスベースの Web サービスでは、複雑なデータタイプのマッピングが必要な EJB ベースのサービスを使用する場合に、Axis の bean マッピング機能を利用できます。