次のいずれのエンティティも JWS (JRun Web Service:JRun Web サービス) としてパブリッシュできます。
このセクションでは、Web サービスのバックエンドに関する一般情報について説明します。
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 クラスは 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 シリアライザによるデータタイプマッピング」 を参照してください。
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>
クラスベースの Web サービスでは、複雑なデータタイプのマッピングが必要な EJB ベースのサービスを使用する場合に、Axis の bean マッピング機能を利用できます。