ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server 移行ガイド
Interstage

2.17 Webサービス

J2EE機能の場合

J2EEのInterstage Webサービスは、アプリケーションの作成方法や配備処理についてはWeb Services for J2EE 1.1に、実装のためのJavaの標準APIはJAX-RPC 1.1の標準規約に従います。

<Webサービスサーバ>

以下にJ2EEのInterstage Webサービスのサーバ機能の作成の概要を示します。



<Webサービスクライアント>

以下にJ2EEのInterstage Webサービスのクライアント機能の作成の概要を示します。



Java EE機能場合

Java EEのWebサービスは、アプリケーションの作成方法や配備処理については、Web Services for Java EE 1.2に、実装のためのJavaの標準APIはJAX-WSの標準規約に従います。

JAX-WSは、JAX-RPCの後継という位置付けですが、JAX-RPCに対する下位互換性はありません。移行には、アプリケーションの変更が必要です。

<Webサービスサーバ>

以下にJava EEのWebサービスのサーバ機能の作成の概要を示します。



<Webサービスクライアント>

以下にJava EEのWebサービスのクライアント機能の作成の概要を示します。




■比較Webサービスアプリケーションの作成方法

J2EEの機能名/定義名

Java EEの機能名/定義名

サービスエンドポイントインタフェースの定義

サービスエンドポイントインタフェースの定義

WSDLの生成

Webサービスエンドポイントクラスの実装

Webサービスエンドポイントクラスの実装

deployment descriptorの編集

deployment descriptorの編集

配備

配備

インタフェースの提供

インタフェースの提供


サービスエンドポイントインタフェースの定義

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

サービスエンドポイントインタフェースの定義

必須です。

java.rmi.Remoteインタフェースを継承したインタフェースとします。

メソッドはjava.rmi.RemoteExceptionをthrowします。

サービスエンドポイントインタフェースの定義

省略可能です。

定義する場合は、任意のJavaインターフェースにjavax.jws.WebServiceアノテーションを付加します。

Java EE機能では、エンドポイントの実装クラスのみでWebサービスアプリケーションが作成できます。


WSDLの生成

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

WSDLの生成

iswsgen wsdlコマンドを使用して生成します。

Webサービスアプリケーションの配備時に自動生成されます。


Webサービスエンドポイントクラスの実装

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

Webサービスエンドポイントクラスの実装

サービスエンドポイントインタフェースを実装します。

Webサービスエンドポイントクラスの実装

任意のpublicクラスにjavax.jws.WebServiceアノテーションを付加します。


deployment descriptorの編集

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

deployment descriptorの編集

以下のファイルを編集します。

webservice.xml

web.xml(WARファイルの場合)

ejb-jar.xml(ejb-jarファイルの場合)

deployment descriptorの編集

省略可能です。

Java EE機能では、Webサービスアプリケーションの配備時に自動生成されます。

カスタマイズしたい場合は、javax.jws.WebServiceアノテーションで指定します。

アノテーションで指定できない項目はdeployment descriptorに記述し、WARまたはejb-jarモジュールにパッケージングしてください。


配備

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

配備

Interstage管理コンソール、またはijsdeploymentコマンドで配備します。

配備

Interstage Java EE管理コンソール、またはasadminコマンドのdeployサブコマンドで配備します。


インタフェースの提供

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

インタフェースの提供

IJServerにWebサービスアプリケーションを配備して取得できる公開WSDLを任意の方法で提供します。

インタフェースの提供

WSDL取得URLを通知します。または、ijwsimportコマンドで取得して提供します。


■比較Webサービスクライアントアプリケーションの作成方法

J2EEの機能名/定義名

Java EEの機能名/定義名

スタブ生成

スタブ生成

クライアントアプリケーションの作成

クライアントアプリケーションの作成


スタブ生成

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

スタブ生成

iswsgen clientコマンドで生成します。生成されるのは、ソースファイルであり、コンパイルが必要です。

スタブ生成

ijwsimportコマンドで生成します。生成されるのは、.classファイルです。

-keepオプションを指定して、ソースファイルも取得、保管することを推奨します。


クライアントアプリケーションの作成

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

クライアントアプリケーションの作成

生成したスタブ、JAX-RPCおよびSAAJのAPIを使用し、Web Service for J2EEに従ったアプリケーションを作成します。

クライアントアプリケーションの作成

生成したスタブ、JAX-WSのAPIを使用して、Web Services for Java EEに従ったアプリケーションを作成します。


■比較Webサービスの実行

J2EEの機能名/定義名

Java EEの機能名/定義名

クライアントアプリケーションがIJServer上以外で動作する場合

クライアントアプリケーションがIJServer上以外で動作する場合


クライアントアプリケーションがIJServer上以外で動作する場合

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

クライアントアプリケーションがIJServer上以外で動作する場合

javaコマンドで実行します。

クライアントアプリケーションがIJServer上以外で動作する場合

appclientコマンドで実行します。


■比較Webサービス開発コマンド

詳細は、「2.4 運用操作コマンド」の「■比較(Webサービス開発コマンド)」を参照してください。


■比較HTTP接続に関する設定

J2EEの機能名/定義名

Java EEの機能名/定義名

接続先URLを指定する方法

接続先URLを指定する方法

Webサービスのユーザ名/パスワードを設定する方法

Webサービスのユーザ名/パスワードを設定する方法

接続のタイムアウトを指定する方法

接続のタイムアウトを指定する方法

セション管理の利用を指定する方法

セション管理の利用を指定する方法

プロキシを経由した接続

プロキシを経由した接続


接続先URLを指定する方法

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

接続先URLを指定する方法

プログラム中で、スタブオブジェクトに対して以下のプロパティで指定します。

キー名:javax.xml.rpc.service.endpoint.address

接続先URLを指定する方法

プログラム中で、リクエストコンテキストのプロパティにjavax.xml.ws.BindingProviderオブジェクトを通して指定します。

キー名:javax.xml.ws.BindingProvider.ENDPOINT_ADDRESS_PROPERTY

「Java EE運用ガイド」-「Webサービスクライアントアプリケーションの開発」-「HTTP関連のリクエストプロパティ設定」を参照してください。


Webサービスのユーザ名/パスワードを設定する方法

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

Webサービスのユーザ名/パスワードを設定する方法

プログラム中で、スタブオブジェクトに対して以下のプロパティで指定します。

キー名:javax.xml.rpc.security.auth.username

javax.xml.rpc.security.auth.password

Webサービスのユーザ名/パスワードを設定する方法

プログラム中で、リクエストコンテキストのプロパティにjavax.xml.ws.BindingProviderオブジェクトを通して指定します。

キー名:javax.xml.ws.BindingProvider.USERNAME_PROPERTY

javax.xml.ws.BindingProvider.PASSWORD_PROPERTY

詳細は、「Java EE運用ガイド」-「Webサービスクライアントアプリケーションの開発」-「HTTP関連のリクエストプロパティ設定」を参照してください。


接続のタイムアウトを指定する方法

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

接続のタイムアウトを指定する方法

プログラム中で、スタブオブジェクトに対して以下のプロパティで指定します。

キー名:com.fujitsu.interstage.isws.client.connect.timeout

接続のタイムアウトを指定する方法

プログラム中で、リクエストコンテキストのプロパティに指定します。

キー名:com.sun.xml.ws.connect.timeout

詳細は、「Java EE運用ガイド」-「Webサービスクライアントアプリケーションの開発」-「HTTP関連のリクエストプロパティ設定」を参照してください。


セション管理の利用を指定する方法

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

セション管理の利用を指定する方法

プログラム中で、スタブオブジェクトに対して以下のプロパティで指定します。

キー名:javax.xml.rpc.session.maintain

セション管理の利用を指定する方法

プログラム中で、リクエストコンテキストのプロパティにjavax.xml.ws.BindingProviderオブジェクトを通して指定します。

キー名:javax.xml.ws.BindingProvider.SESSION_MAINTAIN_PROPERTY

WS-I Basic Profileでは、HTTP Cookieに依存することを推奨していません。そのため本機能の使用は推奨しません。


プロキシを経由した接続

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

プロキシを経由した接続

プログラム中で、スタブオブジェクト、またはシステムプロパティに対して以下のプロパティで指定します。

キー名:http.proxyHost(ホスト名)

          http.proxyPort(ポート番号)

          http.nonProxyHosts(プロキシを経由せずに接続するホスト名)

          http.proxyUser(ユーザ名)

          http.proxyPassword(パスワード)

プロキシを経由した接続

javaプロセスのシステムプロパティに指定します。

キー名:http.proxyHost(ホスト名)

          http.proxyPort(ポート番号)

          http.nonProxyHosts(プロキシを経由せずに接続するホスト名)

          http.proxyUser(ユーザ名)

          http.proxyPassword(パスワード)


■比較Webサービスクライアントログファイル

J2EEの機能名/定義名

Java EEの機能名/定義名

Webサービスクライアントログファイルの指定

Webサービスクライアントログファイルの最大サイズ

Webサービスクライアントログファイルの最大世代数


Webサービスクライアントログファイルの指定

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

Webサービスクライアントログファイルの指定

Webサービス設定ファイルに指定します。

com.fujitsu.interstage.isws.log.file.path

指定できません。


Webサービスクライアントログファイルの最大サイズ

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

Webサービスクライアントログファイルの最大サイズ

Webサービス設定ファイルに指定します。

com.fujitsu.interstage.isws.log.file.maxfilesize

指定できません。


Webサービスクライアントログファイルの最大世代数

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

Webサービスクライアントログファイルの最大世代数

Webサービス設定ファイルに指定します。

com.fujitsu.interstage.isws.log.file.maxbackupindex

指定できません。


■比較SSL通信

J2EEの機能名/定義名

Java EEの機能名/定義名

Webサービスクライアントで使用するSSL定義名

Webサービスクライアントで使用するキーストアの設定


Webサービスクライアントで使用するSSL定義名

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

Webサービスクライアントで使用するSSL定義名

Webサービス設定ファイルに指定します。

com.fujitsu.interstage.isws.client.ssl.configname

Webサービスクライアントで使用するキーストアの設定

【Webサービスクライアントがアプリケーションクライアントコンテナの場合】

VMARGS環境変数でキーストアの情報を設定します。

【WebサービスクライアントがIJserverクラスタに配備された場合】

  JVMオプションでキーストアの情報を設定します。

キーストアの情報の詳細は、「Java EE運用ガイド」-「SSL」-「アプリケーションクライアントコンテナで利用するキーストアの設定」、および「キーストアの設定」を参照してください。


■比較添付ファイル

J2EEの機能名/定義名

Java EEの機能名/定義名

添付ファイルの一時ファイル作成場所

添付ファイルの一時ファイル作成場所

添付ファイル受信時に一時ファイルを生成せずメモリのみで扱うサイズの上限

レスポンス返却時の、Webサービスアプリケーションで受信した添付ファイルデータ削除(資源解放)

WSDLでtext/plainに指定された添付ファイルのデフォルト文字コード


添付ファイルの一時ファイル作成場所

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

添付ファイルの一時ファイル作成場所

Webサービス設定ファイルに指定します。

com.fujitsu.interstage.isws.attachment.tmpdir

添付ファイルの一時ファイル作成場所

システムプロパティjava.io.tmpdirに設定されている格納先に作成されます。


添付ファイル受信時に一時ファイルを生成せずメモリのみで扱うサイズの上限

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

添付ファイル受信時に一時ファイルを生成せずメモリのみで扱うサイズの上限

Webサービス設定ファイルに指定します。

com.fujitsu.interstage.isws.attachment.memory.cachesize

指定できません。1MB以上の添付ファイルは内部的に一時ファイルを生成して処理されます。


レスポンス返却時の、Webサービスアプリケーションで受信した添付ファイルデータ削除(資源解放)

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

レスポンス返却時の、Webサービスアプリケーションで受信した添付ファイルデータ削除(資源解放)

Webサービス設定ファイルに指定します。

com.fujitsu.interstage.isws.attachment.tempfile.keepmode

指定できません。一時ファイルは添付ファイルデータのオブジェクトがGCによって回収される際やJava VMの終了時に削除されます。


WSDLでtext/plainに指定された添付ファイルのデフォルト文字コード

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

WSDLでtext/plainに指定された添付ファイルのデフォルト文字コード

Webサービス設定ファイルに指定します。

com.fujitsu.interstage.isws.attachment.plaintext.charset

指定できません。


■比較アプリケーションの配備/配備解除のタイムアウト時間設定

J2EEの機能名/定義名

Java EEの機能名/定義名

アプリケーションの配備/配備解除のタイムアウト時間


アプリケーションの配備/配備解除のタイムアウト時間

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

アプリケーションの配備/配備解除のタイムアウト時間

Interstage JMXサービスが使用するjavaプロセスのシステムプロパティに設定します。

-Dcom.fujitsu.interstage.isws.deploy.wsdl.timeout=タイムアウト時間(単位:ミリ秒)

指定できません。


■比較JNDIを使用してServiceオブジェクトをlookupする方法

J2EEの機能名/定義名

Java EEの機能名/定義名

JNDIを使用してServiceオブジェクトをlookupする方法


JNDIを使用してServiceオブジェクトをlookupする方法

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

JNDIを使用してServiceオブジェクトをlookupする方法

以下の手順でWebサービスを呼び出します。

  1. InitialContextオブジェクトを生成します

  2. InitialContextのlookupメソッドを使用し、Serviceオブジェクトを取得します
    lookupの引数には、以下の文字列を指定します。
    java:comp/env/[ deployment descriptorの<service-ref-name>に指定した値 ]

  3. Serviceオブジェクトからスタブオブジェクトを取得します

  4. スタブのメソッドを呼び出します

<例>

InitialContext ic = new InitialContext (); //(1)
StockQuoteProviderService sqs =
(StockQuoteProviderService)ic.lookup("java:comp/env/service/StockQuote"); //(2)

StockQuoteProvider sqp = sqs.getStockQuoteProviderPort(); //(3)

float price = sqp.getLastTradePrice(tickerID); //(4)

@javax.xml.ws.WebServiceRefを使用する方法に変更します。

<例>

public class StockQuoteClient {
   @javax.xml.ws.WebServiceRef
StockQuoteProviderService sqp;
   public static void main (String[] args) {
   StockQuoteProvider sqp = sqs.getStockQuoteProviderPort();
 …

}
}


■比較SOAPバインディングの指定

J2EEの機能名/定義名

Java EEの機能名/定義名

スタイル(style)・使用方法(use)の指定

スタイル(style)・使用方法(use)の指定


スタイル(style)・使用方法(use)の指定

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

スタイル(style)・使用方法(use)の指定

iswsgen wsdlコマンドで指定します。

-styleuse {DOCLITERALWRAPPED |RPCLITERAL |RPCENC}

-y {DOCLITERALWRAPPED |RPCLITERAL |RPCENC}

スタイル(style)・使用方法(use)の指定

@javax.jws.soap.SOAPBingingアノテーションで指定します。

  Style:DOCUMNT|RPC

Use :LITERAL

Java EE機能では、RPC/ENCODEDの組み合わせは未サポートです。


■比較out/inoutパラメタ

J2EEの機能名/定義名

Java EEの機能名/定義名

javax.xml.rpc.holders パッケージに提供されているクラス

javax.xml.ws.Holder<T>クラスを使用

com.fujitsu.interstage.isws.apis.holdersパッケージに提供されているクラス

javax.xml.ws.Holder<T>クラスを使用

javax.xml.rpc.holders パッケージに提供されていないクラス

javax.xml.ws.Holder<T>クラスを使用


javax.xml.rpc.holders パッケージに提供されているクラス

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

javax.xml.rpc.holders パッケージに提供されているクラス

<例>

StringHolder inoutParam = new StringHolder();

javax.xml.ws.Holder<T>クラスを使用

<例>

Holder<String> sparam = new Holder<String>();


com.fujitsu.interstage.isws.apis.holdersパッケージに提供されているクラス

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

com.fujitsu.interstage.isws.apis.holdersパッケージに提供されているクラス

<例>

URIHolder inoutParam = new URIHolder();

javax.xml.ws.Holder<T>クラスを使用

<例>

Holder<URI> sparam = new Holder<URI>();


javax.xml.rpc.holders パッケージに提供されていないクラス

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

javax.xml.rpc.holders パッケージに提供されていないクラス

固有のHolderクラスを用意して使用する。

javax.xml.ws.Holder<T>クラスを使用

<例>

Holder<XXX> sparam = new Holder<XXX>();


■比較マッピングに変更のあるデータ型

J2EEの機能名/定義名

Java EEの機能名/定義名

java.net.URI

java.net.URI


java.net.URI

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

java.net.URI

xsd:anyURI

java.net.URI

xsd:string


■比較データ

J2EEの機能名/定義名

Java EEの機能名/定義名

配列型

java.util.Collectionクラス


配列型

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

配列型

<例>

String  array[] = new String[2];

java.util.Collectionクラス

<例>

ArrayList<String> array = new ArrayList<String>();

配列そのままでも利用できますが、java.util.Collectionクラスに変更することを推奨します。

パラメタをnullや要素数を0とする場合は注意してください。詳細は、「Java EE運用ガイド」-「Webサービスの通信で利用できるデータ型」-「配列・コレクション型の注意事項」を参照してください。


■比較添付ファイル型のXMLデータ型の指定

J2EEの機能名/定義名

Java EEの機能名/定義名

swaref型

swaref型

apache型


swaref型

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

swaref型

iswsgen wsdlコマンドで以下を指定します。

  -attachmentsType swaref

-t swaref

javax.activation.DataHandlerクラスを使用します。

swaref型

DataHandlerクラスの宣言に@javax.xml.bind.annotation.XmlAttachmentRefアノテーションを指定します。

詳細は、「Java EE運用ガイド」-「Webサービスの通信で利用できるデータ型」-「添付ファイル型」を参照してください。


apache型

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

apache型

iswsgen wsdlコマンドで以下を指定します。

  -attachmentsType apache

-t apache

以下のクラスが使用できます。

java.awt.Imageクラス

javax.mail.internet.MimeMultipart

javax.xml.transform.Source

apachesoap名前空間のXMLデータ型は使用できません。他のXMLデータ型に変更してください。詳細は、「Java EE運用ガイド」の「Webサービスの通信で利用できるデータ型」の「添付ファイル」を参照してください。