ページの先頭行へ戻る
Interstage Application Server V12.1.0 移行ガイド
FUJITSU Software

7.4.1 Java EE 7のWebサービス機能への移行

ここでは、Java EE 7のWebサービス機能への移行について説明します。Java EE 7のWebサービス機能については、「Java EE 7 設計・構築・運用ガイド」の「Webサービスアプリケーションの開発」、「Webサービスクライアントアプリケーションの開発」を参照してください。

SOAPサービスは、“RPC/Encoded”の通信方式を採用していました。しかし、Java EE 7のWebサービスは、標準規約であるWS-I Basic Profileに対応するため、同規約で禁止されている“RPC/Encoded”の通信方式はサポートしていません。そのため、クライアント、サーバーの双方を同時に移行してください。

7.4.1.1 SOAPサービスの固有機能

ここでは、SOAPサービスの固有機能を使用していた場合の移行について説明します

CORBA/SOAPゲートウェイ機能

Java EE 7のWebサービス機能では、CORBA/SOAPゲートウェイに相当する機能はありません。相当する機能をアプリケーションにて実装してください。


高信頼性Webサービス(SOAPメッセージの電子署名、XML暗号、SOAPメッセージに対するユーザ認証、送達保証機能)

Java EE 7のWebサービス機能では、サポートしていません。これらの機能を使用しない通常の通信方式に変更するか、または相当する機能をアプリケーションにて実装してください。

7.4.1.2 SSL通信における証明書環境

SOAPサービスのクライアントアプリケーションで使用したSSL通信の証明書環境は、以下に従って移行してください。

Interstage証明書環境とSSL定義名

Java EE 7のWebサービス機能では、Interstage証明書環境のkeystore (証明書、鍵ペア)のみが使用できます。SSL定義は使用できません。

クライアント認証を行っていた場合は、使用していたSSL定義で指定されていたサイト証明書のニックネームを直接指定します。詳細は、「Java EE 7 設計・構築・運用ガイド」の「SSL」の「WebサービスクライアントとWebサービス間の通信」を参照してください。


SOAP固有の証明書環境

SOAP固有の証明書環境の証明書(keystore)はそのまま使用可能です。以下に従って、keystoreを指定してください。

  1. 以下のファイル内に定義されているkeystoreパス名を参照して、copyコマンドなどで退避・移行します

    %IS_HOME%F3FMsoap\conf\ssl.conf

    /opt/FJSVsoap/conf/ssl.conf

  2. 待避・移行したkeystoreの情報を、移行先の環境のVMARGS環境変数、またはJVMオプションに設定します。指定方法の詳細は、「Java EE 7 設計・構築・運用ガイド」の「SSL」の「WebサービスクライアントとWebサービス間の通信」を参照してください。

7.4.1.3 アプリケーションの管理、定義の移行

アプリケーションの定義情報(Webサービス情報)

SOAPサービスでは、Webサービス情報として、アプリケーションの定義情報が管理されており、Webサービス情報編集ツール(GUI)、または、soapmodifyddコマンドと記述ファイルで環境に登録・更新を行います。
Java EE 7のWebサービス機能では、Webサービス情報に相当する情報は作成する必要はありません。アプリケーションをWARファイルに含めてください。詳細は、「Java EE 7 設計・構築・運用ガイド」の「Webサービスアプリケーションの開発」を参照してください。


アプリケーションの形態、配備方法

SOAPサービスでは、サーバアプリケーションは、任意のJARファイルにまとめるなどして、FTPなどでサーバに転送し、IJServer(Servletコンテナ)のクラスパスに設定する必要があります。また、あらかじめIJServerには、SOAPサービスの環境を構築しておく必要があります。
Java EE 7のWebサービス機能では、Webアプリケーションは、WARファイルに含め、通常のWARファイルと同様にIJServerクラスタに配備することで利用可能になります。IJServerクラスタに事前の環境設定は不要です。WebサービスアプリケーションのWARファイルの作成については、「Java EE 7 設計・構築・運用ガイド」の「Webサービスアプリケーションの開発」を参照してください。

7.4.1.4 アプリケーションの移行(RPC方式)

Java EE 7のWebサービス機能を使用したアプリケーションに変更する必要があります。

以下の機能は、Java EE 7のWebサービス機能では提供されていない、または、差異があります。これらの機能を利用している場合は、アプリケーションの修正が必要です。


Interstage V5.0以前のSOAPサービスAPI

パッケージ名がcom.fujitsu.interstage.soap.で始まるクラスは、Java EE 7のWebサービス機能では利用できません。これらを利用しているアプリケーションは、JAX-WSのAPIを使用したプログラムに変更してください。詳細は、「Java EE 7 設計・構築・運用ガイド」の「Webサービスアプリケーションの開発」、「Webサービスクライアントアプリケーションの開発」などを参照してください。


データ型

以下のデータ型は、Java EE 7のWebサービス機能ではサポートされていない、または差異があります。Java EE 7のWebサービスで利用できるデータ型に変更してください。詳細は、「Java EE 7 設計・構築・運用ガイド」の「Webサービスの通信で利用できるデータ型」を参照してください。

out/inoutパラメタとしての利用

javax.xml.ws.Holderクラスを使用してください。詳細は、「Java EE 7 設計・構築・運用ガイド」の「Webサービスの通信で利用できるデータ型  out/inoutパラメタとしての利用」を参照してください。


クライアントアプリケーションの開発

SOAPサービスでは、統合開発環境ツール(IDE)を利用したスタブ方式と上級者向けの複雑なAPIを使用するDII方式の2つの方式がサポートされています。Java EE 7のWebサービス機能では、開発容易性に優れたスタブ方式をサポートしています。SOAPサービスでDII方式のクライアントアプリケーションを利用していた場合は、SOAPのクライアント部分をスタブ方式に修正してください。SOAPサービスでスタブ方式のクライアントアプリケーションを利用していた場合は、スタブはJava EE 7のWebサービス機能で生成したものに置き換え、クライアントアプリケーションも若干修正する必要があります。詳細は、「Java EE 7 設計・構築・運用ガイド」の「Webサービスクライアントアプリケーションの開発」を参照してください。


サーバアプリケーションのライフサイクル

Java EE 7のWebサービス機能では、Webサービスアプリケーションのライフサイクルはコンテナで制御されます。SOAPサービスのWebサービス情報のparameterタグで指定する“scope”属性と同等の方法は提供されません。


Fault返却時のクライアントアプリケーションでの例外

SOAPサービスでは、WebサービスからFaultが返却されると、クライアントアプリケーションにはFault情報を取得できるAPIを持つjavax.xml.rpc.soap.SOAPFaultExceptionがthrowされました。
それに対して、Java EE 7のWebサービス機能では、Webサービス個別のJavaの例外(extends java.lang.Exception)はWSDLのfault要素にマッピングされます。クライアントアプリケーションには、その例外が、スタブの一部として生成され、throwされます。WSDLに定義されていないfaultはjavax.xml.ws.soap.SOAPFaultExceptionがthrowされます。


JavaパッケージとXMLの名前空間の対応

Java EE 7のWebサービス機能では、Webサービスアプリケーションで使用されるJavaのパッケージとXMLの名前空間が対応付けられます。
移行前の名前空間の利用を継続するには、javax.jws.WebServiceアノテーションのtargetNamespace属性を指定してください。

7.4.1.5 アプリケーションの移行(Messaging方式)

Java EE 7のWebサービス機能を使用したアプリケーションに変更する必要があります。

の移行ができない場合

Java EE 7のWebサービス機能の通常のアプリケーションは、インターフェース(オペレーションの名前、パラメタ、データ型など)が決まっているWebサービスに対応しています。通常のアプリケーションでは対応できない場合は、SOAPサーバアプリケーションはjavax.xml.ws.Provider、SOAPクライアントアプリケーションはjavax.xml.ws.Dispatchを使用したアプリケーションに変更してください。詳細は、JAX-WSのJavadocを参照してください

7.4.1.6 SOAPサービス固有API

クライアント認証で使用する証明書の選択 - setSSLAuthKeyAlias( String authKeyAlias )

Java EE 7のWebサービス機能では、設定する必要はありません。削除してください。


セション管理の利用 - setMaintainSession (boolean maintainsSession)

HTTPのセッション管理の利用は、WS-I Basic Profileで推奨されていません。利用の必要性を見直してください。必要な場合は、javax.xml.ws.BindingProviderオブジェクトを通じてリクエストコンテキストのプロパティとして指定できます。詳細は、「Java EE 7 設計・構築・運用ガイド」の「Webサービスクライアントアプリケーションの開発  HTTP関連のリクエストプロパティ設定」、およびJAX-WSのJavaDocを参照してください。

7.4.1.7 SOAPサービス固有のプロパティ

クライアントでの、プロキシを経由した接続の設定 - com.fujitsu.interstage.soapx.proxy

Java標準のネットワークのシステムプロパティで設定してください。詳細は、「Java EE 7 設計・構築・運用ガイド」の「Webサービスクライアントアプリケーションの開発  プロキシの利用」を参照してください。


クライアントでの、接続タイムアウトの設定 - com.fujitsu.interstage.soapx.socket.timeout

javax.xml.ws.BindingProviderオブジェクトを通じてリクエストコンテキストのプロパティとして指定できます。詳細は、「Java EE 7 設計・構築・運用ガイド」の「Webサービスクライアントアプリケーションの開発  HTTP関連のリクエストプロパティ設定」を参照してください。


Webサービスのユーザ名/パスワードを設定する方法 - javax.xml.rpc.securuty.auth

javax.xml.ws.BindingProviderオブジェクトを通じてリクエストコンテキストのプロパティとして指定できます。詳細は、「Java EE 7 設計・構築・運用ガイド」の「Webサービスクライアントアプリケーションの開発  HTTP関連のリクエストプロパティ設定」を参照してください。


voidの返り値のダミー返却 - com.fujitsu.interstage.soapx.simpleVoid

SOAPサービスでは、返り値がvoidのサーバアプリケーションについて、プロパティ指定により返り値としてダミーの値が返却するオプションが提供されていました。SOAPサービスで本オプションを使用していた場合は、アプリケーションをラップするなどして、返り値をvoidからintに変更して、ダミーの値0を常に返却するように変更してください。


SOAPのバージョン指定 - com.fujitsu.interstage.soapx.soap.version

SOAP1.1を利用する場合は、指定は不要です。SOAP1.2は、WS-I Basic Profile 1.1に準拠しないためJava EE 7のWebサービス機能では推奨しません。SOAP1.1へ変更してください。