JBoss での JAX-WS Web サービスの定義
手順
- sandbox.cfg:
パラメーター 説明 Web サービス・ビルド 必須。 YIFWebService および SIXBeanXapiJaxWSを含むコンマ区切りリストを指定できます。 Xbean_package オプション。 デフォルトでは、JAX-WS Web サービス用に生成される xbean パッケージ名および名前空間には、 文書という語が含まれています。 このパラメーターは、 documentation という語を別のストリングに置き換えるために使用します。 この値は、有効な Java パッケージ名を形成する任意のストリングにすることができます。 重要: 入力方法に関係なく、 Sterling Order Management System Software は、Java™ 標準に準拠するように、このストリングを常にすべて小文字に変換します。Jaxb_local_scoping 必須。 有効な値は true/false です。 set to true. このフラグは、JAXB が Bean を生成する方法に影響を与えます。 すべてのクラスがトップレベルになるため、階層内に存在するのではなく、すべてのクラスがデフォルト・パッケージ内に存在することになります。 通常、 Sterling Order Management システム・ソフトウェア API では、最上位のスコープを使用しないと、ファイル・システムに対して長すぎるファイル名が生成されます。 Jaxb_always_annotate_classnames 必須。 JAXB によって生成されるクラスには、名前の末尾に 1 つ上 の番号が付けられます。これにより、最上位のスコープが使用されるときに、同じ名前を持つ複数のクラスが存在しないようにすることができます。 デフォルトでは、このフラグが組み込まれ、true に設定されます (はい、すべてのクラスにアノテーションを付けます)。
1 つ上の数値の使用を最小限に抑える場合は、以下の例に示すように、選択した API の webservicebeans.xml ファイルに AnnotateClassNames 属性を指定します。<Bean BeanName="ParticipantBean" BeanPackage="com.sterlingcommerce.jaxws.participant. webservices" > <Apis> <Api AnnotateClassNames="true" Name="getOrganizationHierarchy" ExposedName="getOrganizationHierarchy" /> <Api AnnotateClassNames="true" Name="getOrganizationList" ExposedName="getOrganizationList" /> <Api AnnotateClassNames="false" Name="getPersonInfoList" ExposedName="getPersonInfoList" /> <Api AnnotateClassNames="false" Name="login" ExposedName="login" /> </Apis> </Bean>SUPPRESS_JAXWS_HANDLER デフォルトでは、 Sterling Order Management System Software は、セキュリティー使用可能化の一部として JAX-WS ベースの Web サービスにハンドラーを適用します。 ハンドラーを適用しない場合は、この sandbox.cfg 変数を true に設定します。 Web サービス・セキュリティーについて詳しくは、「 PA-DSS のセキュア・デプロイメントの計画」を参照してください。
- SUN または Oracle JDK を使用している場合は、
<INSTALL_DIR>/bin/build.properties.inを編集して、以下のプロパティーを設定します。jaxws.compiler.jvm.args=-J-XX:MaxPermSize=512m -J-Xmx768m - ファイルを保存し、bin ディレクトリーにナビゲートして、setupfiles コマンドを実行します。
- Unix/Linux の場合:
<INSTALL_DIR>/bin/setupfiles.sh - Windows の場合:
<INSTALL_DIR>\bin\setupfiles.cmd
- Unix/Linux の場合:
-
<INSTALL_DIR>/repository/eardata/platform/webservicesフォルダーで、webservicebeans.xml.sampleファイルを見つけます。 ファイルをwebservicebeans.xmlにコピーします。 これは編集するファイルです。webservicebeans.xml 属性 説明 Bean 属性 注: 同じ API を 2 つの Bean に入れないでください。BeanName 必須。 Web サービスの記述名を入力します。 BeanName の最初の文字は大文字でなければなりません。 この名前は WSDL 生成プログラムによって使用され、クライアント・コードに反映されます。 必須。
例えば、Dave 's BBQ という名前の会社は、以下を使用します。
BeanName=DavesBBQJaxWSBeanPackage 必須。 必須。 パッケージの記述名を入力します。 各 Bean には固有のパッケージ名が必要です。 この名前は WSDL 生成プログラムによって使用され、クライアント・コードに反映されます。 例えば、Dave 's BBQ という名前の会社は、以下を使用します。
BeanPackage=com.DavesBBQAPI エレメント属性 API 名 サービス・ビルダーを使用して構成した API の名前。 ExposedName Web サービス記述言語 (WSDL) ファイルで使用されている名前。 これは、Web サービスをプログラマチックに呼び出すために使用される名前です。 ExposedNameにサービス名を指定するときは、どの標準アプリケーション API 名にも一致しないリテラルを選択してください。 直接的な名前の先頭は小文字でなければなりません。
AnnotateClassの名前 アノテーションを付ける必要がある API を示すには、 webservicebeans.xmlでAnnotateClassNames属性を指定します。 このフラグは、サンドボックス変数 ALWAYS_ANNOTATE_CLASS_NAMES と比較して、特定の API に 1 つ上のアノテーションが必要であることを示すより詳細な方法を提供します。サービス・エレメント属性 サービス名 サービス・ビルダーを使用して構成したサービスの名前。 ExposedName Web サービス記述言語 (WSDL) ファイルで使用されている名前。 これは、Web サービスをプログラマチックに呼び出すために使用される名前です。 ExposedNameにサービス名を指定するときは、どの標準アプリケーション・サービス名とも一致しないリテラルを選択してください。 直接的な名前の先頭は小文字でなければなりません。
AnnotateClassの名前 アノテーションを付ける必要がある API を示すには、 webservicebeans.xmlでAnnotateClassNames属性を指定します。SDF サービスを Web サービスとして公開するには、 JBoss での Web サービスとしての SDF サービスの公開の手順も実行する必要があります。 - ファイルを保存します。
- JBoss での EAR の作成の説明に従って EAR を作成します。 ファイルで定義された Web サービスは、アプリケーション EAR の作成時にビルドされます。注意:JAX-WS Web サービスを使用して EAR をビルドするときに、メモリー不足エラーが発生することがあります。 JAX-WS Web サービスは、XSD 内のエレメントごとに Java クラスを生成します。これは、システム・メモリーを超える可能性があります。 EAR ビルドでメモリー不足が発生した場合は、不要な API を webservicebeans.xml ファイルから削除する必要があります。 さらに、出力 XML が大きくなる可能性がある API は、不要なエレメントを除去するために、XSD が削減されたサービスを介して公開される可能性があります。ヒント: JAX-WS Bean を作成するためのメモリー要件は、ある程度は Bean ごとになっています。 これは、場合によっては、1 つの JAX-WS Bean を介して一連の API を公開すると、EAR ビルド中にメモリー不足エラーが発生する可能性があることを意味します。 同じ API を複数の Bean に分割して公開すると、メモリー不足エラーが回避され、EAR が正常に作成される可能性があります。
- 後で、JAX-WS Web サービスとしてさらに API およびサービスを追加する場合は、これらのステップを繰り返します。