WebサービスクライアントアプリケーションからJNDIを使用してServiceをlookupする場合、クライアントアプリケーションの形態に応じて以下のdeployment descriptorにservice reference記述を追加する必要があります。
WebアプリケーションからServiceをlookupする場合・・・web.xml
EJBアプリケーションからServiceをlookupする場合・・・ejb-jar.xml
J2EEアプリケーションクライアントからServiceをlookupする場合・・・application-client.xml
対象となるdeployment descriptorに<service-ref>タグを追加し、Webサービス参照についての定義を記述してください。
以下の表にないタグについては、“7.5 Webアプリケーション環境定義ファイル(deployment descriptor)”、“4.13 J2EEアプリケーションクライアントのdeployment descriptorファイルの詳細設定”、または“4.9 deployment descriptorファイルへの記述”を参照してください。
定義する内容
要素名 | 説明 | タグの | 複数の |
---|---|---|---|
service-ref | Webサービス参照についての定義を記述します。 | ○ | ○ |
service-ref-name | JNDIに登録する名前を定義します。“service/”で始まるように定義してください。 | × | × |
service-interface | Serviceインタフェースの完全修飾クラス名を定義します。 | × | × |
wsdl-file | iswsgenコマンドまたはInterstage Studioを使用してスタブおよびクライアントアプリケーションを作成した場合、本要素は省略してください。 | ○ | × |
jaxrpc-mapping-file | <WSDLファイル名>_mapping.xmlをモジュールのルートから相対パスで定義します。wsdl-fileを指定した場合は本要素は省略不可です。 | ○ | × |
注意
<wsdl-file>を指定した場合に生成されるクラス名は、“_isws_パッケージ名を除いたクラス名”となります(例:stock.server._isws_StockQuoteProviderPortSoapBindingStub)。配備するモジュール内に同名のクラスが存在した場合は上書きされます。
<service-interface>要素に“javax.xml.rpc.Service”を指定することはできません。WSDLから生成されたサービス固有のServiceインタフェース(javax.xml.rpc.Serviceを継承したインタフェース)のクラス名を指定してください。
JDKがインストールされていない場合、<wsdl-file>を指定することはできません。
例
WebアプリケーションからServiceをlookupする場合(web.xml)
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd version="2.4"> <display-name>StockQuote Client</display-name> ... <service-ref> <description>WSDL Service StockQuote </description> <service-ref-name>service/StockQuote</service-ref-name> <service-interface>stock.server.StockQuoteProviderService</service-interface> </service-ref> </web-app>