ページの先頭行へ戻る
Interstage Application Server V12.0.0 Java EE 7 設計・構築・運用ガイド
FUJITSU Software

13.3.14 Webサービス

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

J2EE機能名/定義名

J2EE定義方法

Java EE 7機能名/定義名

Java EE 7定義方法

説明

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

必須です。
java.rmi.Remoteインタフェースを継承したインタフェースとします。
メソッドはjava.rmi.RemoteExceptionをthrowします。

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

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

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

WSDLの生成

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

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

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

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

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

■JAX-WSエンドポイント
任意のpublicクラスにjavax.jws.WebServiceアノテーションを付加したものです。

■Stateless Session Bean
Stateless Session Beanのクラスにjavax.jws.WebServiceアノテーションを付加したものです。

■Singleton Session Bean
Singleton Session Beanのクラスにjavax.jws.WebServiceアノテーションを付加したものです。

deployment descriptorの編集

以下のファイルを編集します。
webservice.xml
web.xml(WARファイルの場合)
ejb-jar.xml(ejb-jarファイルの場合)

deployment descriptorの編集

省略可能です。
Java EE 7機能では、Webサービスアプリケーションの配備時に自動生成されます。
カスタマイズしたい場合は、javax.jws.WebServiceアノテーションで指定します。
アノテーションで指定できない項目はdeployment descriptorに記述し、WARまたはejb-jarモジュールにパッケージングしてください。

配備

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

配備

asadminコマンドのdeployサブコマンドで配備します。

インタフェースの提供

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

インタフェースの提供

■WSDL取得URLを通知する
通常は、こちらの方法でWSDLを提供してください。

■ijwsimportコマンドで取得保管したWSDL一式をファイルで提供する

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

J2EE機能名/定義名

J2EE定義方法

Java EE 7機能名/定義名

Java EE 7定義方法

説明

スタブ生成

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

スタブ生成

入手したWSDLからJAX-WSで利用するスタブを生成します。ijwsimportコマンドを使用します。トラブル時などの調査のため、-keepオプションで最終生成物以外の資材(ソースファイルなど)も保存・保管することを強く推奨します。

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

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

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

生成したスタブ類を使用して、JAX-WSおよびImplementing Enterprise Web Servicesに従ったアプリケーションを作成します。

■Webサービスの実行

J2EE機能名/定義名

J2EE定義方法

Java EE 7機能名/定義名

Java EE 7定義方法

説明

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

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

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

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

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

13.3.2 運用操作コマンド」の「■Webサービス開発コマンド」を参照してください。

■HTTP接続に関する設定

J2EE機能名/定義名

J2EE定義方法

Java EE 7機能名/定義名

Java EE 7定義方法

説明

接続先URLを指定する方法

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

javax.xml.rpc.service.endpoint.address

接続先URLを指定する方法

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

javax.xml.ws.BindingProvider.ENDPOINT_ADDRESS_PROPERTY

詳細は、「HTTP関連のリクエストプロパティ設定」を参照してください。

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

詳細は、「HTTP関連のリクエストプロパティ設定」を参照してください。

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

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

com.fujitsu.interstage.isws.client.connect.timeout

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

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


・HTTP通信のサーバへの接続タイムアウト
com.sun.xml.ws.connect.timeout
・HTTP通信の読み込みタイムアウト
com.sun.xml.ws.request.timeout

詳細は、「HTTP関連のリクエストプロパティ設定」を参照してください。

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

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

javax.xml.rpc.session.maintain

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

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

javax.xml.ws.BindingProvider.SESSION_MAINTAIN_PROPERTY

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

HTTPプロキシのホストとポート

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

http.proxyHost(ホスト名)
http.proxyPort(ポート番号)
http.nonProxyHosts(プロキシを経由せずに接続するホスト名)

プロキシを経由した接続

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

http.proxyHost(ホスト名)
http.proxyPort(ポート番号)
http.nonProxyHosts(プロキシを経由せずに接続するホスト名)

HTTPプロキシのユーザーとパスワード

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

http.proxyUser(ユーザ名)
http.proxyPassword(パスワード)

プロキシを経由した接続

appclientコマンドの-userおよび-passwordオプション、または-textauthオプションで指定します。

詳細は、「HTTP Basic認証情報を設定してWebサービスを呼び出す」を参照してください。

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

J2EE機能名/定義名

J2EE定義方法

Java EE 7機能名/定義名

Java EE 7定義方法

説明

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

Webサービス設定ファイルに指定します。
com.fujitsu.interstage.isws.log.file.path

指定できません。

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

Webサービス設定ファイルに指定します。
com.fujitsu.interstage.isws.log.file.maxfilesize

指定できません。

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

Webサービス設定ファイルに指定します。
com.fujitsu.interstage.isws.log.file.maxbackupindex

指定できません。

■SSL通信

J2EE機能名/定義名

J2EE定義方法

Java EE 7機能名/定義名

Java EE 7定義方法

説明

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

Webサービス設定ファイルに指定します。
com.fujitsu.interstage.isws.client.ssl.configname

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

【Webサービスクライアントがアプリケーションクライアントコンテナの場合】
VMARGS環境変数でキーストアの情報を設定します。
【WebサービスクライアントがIJserverクラスタに配備された場合】
JVMオプションでキーストアの情報を設定します。

キーストアの情報の詳細は、「WebサービスクライアントとWebサービス間の通信」-「Webサービスクライアント側の設定」を参照してください。

■添付ファイル

J2EE機能名/定義名

J2EE定義方法

Java EE 7機能名/定義名

Java EE 7定義方法

説明

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

Webサービス設定ファイルに指定します。
com.fujitsu.interstage.isws.attachment.tmpdir

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

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

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

Webサービス設定ファイルに指定します。
com.fujitsu.interstage.isws.attachment.memory.cachesize

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

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

Webサービス設定ファイルに指定します。
com.fujitsu.interstage.isws.attachment.tempfile.keepmode

一時ファイルは添付ファイルデータのオブジェクトがGCによって回収される際やJava VMの終了時に削除されますが、Javaプロセスが異常終了した場合、ファイルは削除されずに残ることがあります。その場合は、上記ファイルがどのプロセスからも使用されていないことを確認後、手動で削除してください。

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

Webサービス設定ファイルに指定します。
com.fujitsu.interstage.isws.attachment.plaintext.charset

指定できません。

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

J2EE機能名/定義名

J2EE定義方法

Java EE 7機能名/定義名

Java EE 7定義方法

説明

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

Interstage JMXサービスが使用するjavaプロセスのシステムプロパティに設定します。
-Dcom.fujitsu.interstage.isws.deploy.wsdl.timeout=タイムアウト時間(単位:ミリ秒)

指定できません。

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

J2EE機能名/定義名

J2EE定義方法

Java EE 7機能名/定義名

Java EE 7定義方法

説明

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機能名/定義名

J2EE定義方法

Java EE 7機能名/定義名

Java EE 7定義方法

説明

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

iswsgen wsdlコマンドで指定します。
-styleuse {DOCLITERALWRAPPED |RPCLITERAL |RPCENC}
-y {DOCLITERALWRAPPED |RPCLITERAL |RPCENC}

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

StyleとUseの組み合わせは以下の2パターンが使用できます。
・Style: Doocument、Use: Literal
・Style: RPC、 Use: Literal
これを、@javax.jws.soap.SOAPBingingアノテーションに指定します。例えば、Document/Literalの場合の具体的な設定コード例は以下です。

@javax.jws.soap.SOAPBinding(style=javax.jws.soap.SOAPBinding.Style.DOCUMENT,use=javax.jws.soap.SOAPBinding.Use.LITERAL)

■out/inoutパラメタ

J2EE機能名/定義名

J2EE定義方法

Java EE 7機能名/定義名

Java EE 7定義方法

説明

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パッケージに提供されているクラス

<例>
URIHolder inoutParam = new URIHolder();

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

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

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

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

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

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

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

J2EE機能名/定義名

J2EE定義方法

Java EE 7機能名/定義名

Java EE 7定義方法

説明

java.net.URI

xsd:anyURI

java.net.URI

xsd:string

■データ型

J2EE機能名/定義名

J2EE定義方法

Java EE 7機能名/定義名

Java EE 7定義方法

説明

配列型

<例>
String array[] = new String[2];

配列型

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

値を複数個持つパラメタを表現するために、配列やjava.util.Collectionインタフェースを実装したコレクションクラスを使用して、サポートされているデータ型をWebサービスの送受信に利用できます。コレクションクラスを利用する場合は、java.util.List<String>などのように、型パラメタを宣言することでコレクションの内容となるデータ型を明示できます。

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

J2EE機能名/定義名

J2EE定義方法

Java EE 7機能名/定義名

Java EE 7定義方法

説明

swaref型

iswsgen wsdlコマンドで以下を指定します。
-attachmentsType swaref
-t swaref
javax.activation.DataHandlerクラスを使用します。

swaref型

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

詳細は、「添付ファイル型」を参照してください。

apache型

iswsgen wsdlコマンドで以下を指定します。
-attachmentsType apache
-t apache
以下のクラスが使用できます。
java.awt.Imageクラス
javax.mail.internet.MimeMultipart
javax.xml.transform.Source

apachesoap名前空間のXMLデータ型は使用できません。他のXMLデータ型に変更してください。詳細は、「3.1.3 Webサービスの通信で利用できるデータ型」を参照してください。