この規則は、以下の基準に基づいて、JAX-RPC Web サービスがあることを検出します。
- web-services.xml ファイルが存在する
- weblogic-webservices.xml ファイルと webservices.xml ファイルが同一フォルダー内に存在する
マニュアル
WebLogic J2EE Webサービス展開記述子に基づいてJAX-RPC Webサービスを生成するには、特定のタスクを使用して Ant スクリプトを手動で作成する必要があります。 IBM® Ant タスクを使用して手動でスクリプトを作成する必要があります。 スクリプトは、 IBM Ant -生成されたファイルがまだ存在しない場合、プロジェクトのルートフォルダに追加する必要があります。 これらのタスクは デプロイメント記述子からJAX-RPC Webサービスを生成します。
規則のプロパティー
分析中に正確な結果を得るためには、ルールのプロパティに正しい値を指定する必要があります。 これらのプロパティを確認し アプリケーションのコンテキストに基づいて適切に設定する必要があります。 この規則のプロパティーは、以下のとおりです。
- 生成された Ant スクリプト名
:
生成される新しい Ant スクリプトの名前を指定します。 name は有効なファイル名でなければならない。 値には前方または後方のスラッシュを含んではならない。 スクリプトはプロジェクトのルート・フォルダーに置かれる。
デフォルト値: build-ibm-ws.xml
- 生成フォルダー名:
生成アーティファクトが置かれるフォルダの名前を指定する; この値には、前方または後方のスラッシュを含めてはいけません。 生成フォルダーは、プロジェクトのルート・フォルダーに入れられます。
デフォルト値: ibm-ws-gen
Ant クラスパス
Ant クラスパスは Eclipse プロジェクトから計算されます。
コンパイルに必要なすべてのエレメントが Eclipse クラスパス上にあることを確認することが重要です。
web-services.xml ファイルで定義された JAX-RPC サービス
web-services.xml で定義されたサービスの情報およびタイプに基づいて、Ant スクリプト、
および場合によっては Web サービスのエンドポイント・インターフェースを表す追加の Java コードが、JAX-RPC サービスを
複製するために生成されます。
- サポートされるコンポーネント
ステートレスセッションエンタープライズBean(<stateless-ejb>)及び Java (R)(<java-class>)構成要素だけが認識できる。 のみが認識され,変換される。
- ステートレス EJB コンポーネント:
<ejb-link> 要素の path 属性で定義された Enterprise JavaBeans (TM) (EJB) JAR ファイルがプロジェクト内に存在しなければなりません。 <ejb-link> 要素の path 属性で定義されている JAR ファイルがプロジェクト内に存在する必要があります。 自動化された修正では、以下のことが行われる。 は EJB JAR ファイルをスキャンし、EJB リモート・クラスに基づいて新しいサービス・エンドポイント・インターフェイス (SEI) クラスを生成します。
SEIインタフェースがEJBリモート・インタフェースと異なるのは、以下の点である。 クラスが
java.rmi.Remote
, そして各メソッドは例外を投げなければならない、
java.rmi.RemoteException
.
自動化された修正では、EJBの Java リフレクションを使用して、新しいSEI を生成します。 リモート・インターフェース上でリフレクションを使用して新しいSEIを生成します。
したがって、 Eclipse プロジェクトのクラスパスに、必要なクラス、JAR ファイル、ディレクトリがすべて含まれていることを確認してください。 プロジェクト・クラスパスに必要なすべてのクラス、JAR ファイル、およびディレクトリが含まれていることを確認してください。 が含まれていることを確認します。
SEIは、ルールでユーザーが指定した生成フォルダーの中のseiというフォルダーに生成されなければならない。 フォルダ内に生成されなければなりません。 パッケージと一致し、SEI名はEJBリモートインターフェースと同じになります。 パッケージと一致し、SEI名はEJBリモート・インターフェースと同じになります。 さらに、新しい SEI フォルダーがプロジェクト・クラス・パスに追加されます。 がプロジェクト・クラス・パスに追加されます。
- Java クラスのコンポーネント:
EJB コンポーネントと同様に、自動修正では、<class-name> 属性で定義された クラスからサービス・エンドポイント・インターフェース を <class-name> 属性で定義された Java クラスから生成します。
- 生成される Ant ターゲット:
生成された Ant スクリプトには WSDLファイルとJAX-RPCサービスを生成するターゲットが含まれている。 サービスを生成するターゲットが含まれている。
WSDL 生成ターゲットはこの名前を持つ、 genWSDL_ssss, ここで、ssssは<web-service>のname属性フィールドで提供されたJAX-RPCサービスの名前です。 ここで、ssssは<web-service>要素のname属性フィールドで提供されたJAX-RPCサービスの名前です。 要素の name 属性フィールドで提供された JAX-RPC サービスの名前です。
サービス生成ターゲットは名前を持つ、 genService_pppp, ここで、ppppはname要素からコンポーネントの名前です。 属性のコンポーネントの名前です。 <java-class>のname属性にあるコンポーネント名です。
自動修正では、<handlers-chain>や<types>といった他の要素で提供される <handlers-chain>, <types>、 <operations>、<security> などの要素で提供される情報は使用されません。
webservices.xml ファイルで定義された JAXRPC サービス
webservices.xml ファイルに定義されるサービスの情報とタイプに基づいて、
JAX-RPC サービスを複製する Ant スクリプトが生成されます。
- 生成される Ant ターゲット:
生成される Ant スクリプトには、WSDL ファイルと JAX-RPC サービスを生成するターゲットが含まれます。
WSDL生成ターゲットは、以下の場合にのみ生成されます。 要素で定義された WSDL ファイルが見つからない場合にのみ生成されます、 <wsdl-file> 要素で定義された WSDL ファイルが見つからない場合にのみ生成されます。
作成された場合、WSDL生成ターゲットは genWSDL_ssss, ssss は、<webservice-description-name> 要素で定義されたサービスの名前です。 要素の<webservice-description-name>で定義されたサービスの名前である。
サービス生成ターゲットの名前は genService_pppp, ここで、ppppは、port-component-name要素で定義されたポート名です。 要素で定義されたポート名です。
IBM WebSphere Application Server Ant タスク
WebSphere(R) Application Server には、JAX-RPC サービスに必要な成果物を生成する java2wsdl や wsdl2java などの Ant タスクが組み込まれています。 生成される Ant スクリプトは、これらのタスクを使用してサービスを作成します。
これらのタスクに関する追加情報は、以下から入手できます。
WebSphere Application Server の資料。
Ant スクリプトの実行
Ant スクリプトを作成したら、スクリプトを表示し、必要であればカスタマイズを追加します。
IBM Ant タスクの追加のカスタマイズについては、アプリケーション・サーバーの資料を参照してください。
このスクリプトは、WebSphere Application Server に組み込まれている Ant ツール
を使用して実行する必要があります。 IBM Ant スクリプト
は、以下から実行できます。
- Windows(R) オペレーティング・システムの場合 WAS_HOME¥bin¥ws_ant.bat
- UNIX(R) オペレーティング・システムの場合 WAS_HOME¥bin¥ws_ant.sh
例: c:¥IBM¥AppServer¥bin¥ws_ant.bat -f
c:¥eclipse¥MyProject¥ibm-ws-gen.xml genService_TestService
Ant ターゲットが実行されると、生成された成果物は生成フォルダに存在する。 生成された成果物は生成フォルダに存在する。 ユーザーは、生成されたコードとデプロイメント記述子を検査し、これらの成果物を自分のモジュールに追加することができます。 モジュールに追加することができます。
おすすめJAX-WSへの移行を検討する
JAX-RPCウェブ・サービスの移行や最新化の一環として、すでにJAX-RPCウェブ・サービスに変更を加えている場合は、次のものへの移行を評価することを強くお勧めします。 JAX-WS ( Java API for XML Web Services) への移行を評価することを強く推奨する。
JAX-WSはJAX-RPCの後継であり、いくつかの利点がある:
- アノテーションと統合をより良くサポートする最新のAPIデザイン Java EE
- 他のウェブサービスフレームワークや標準との相互運用性の向上
- 最新のアプリケーションサーバーとIDEにおけるより良いツールとサポート
- JAX-RPCはレガシー技術であるため、長期的な存続が可能である
今JAX-WSに移行することで、将来の技術的負債を減らし、アプリケーションを現在の Java Webサービス標準に合わせることができます。
JAX-RPCからJAX-WSへの移行のガイダンスについては、以下を参照のこと。 Web サービス移行シナリオを参照してください:JAX-RPC から JAX-WS および JAXB ドキュメントを参照。