Cosminexus V9 アプリケーションサーバ SOAPアプリケーション開発の手引

[目次][用語][索引][前へ][次へ]

付録A.1 バージョン05-00または05-05からの移行手順

ここでは,バージョン05-00または05-05からのSOAPアプリケーションの移行手順を説明します。また,SOAPアプリケーション移行時の注意事項についても説明します。

<この項の構成>
(1) RPC形態のSOAPアプリケーションの移行
(2) WSDL定義でのデータ型とJavaでのデータ型についての注意事項
(3) WSDL定義での定義内容と生成されるクラス,メソッド名についての注意事項
(4) 提供するAPIの変更についての注意事項
(5) トレースファイル名,およびアプリケーションログ名の変更についての注意事項
(6) サーバ定義ファイルの識別子についての注意事項
(7) 定義ファイルの移行
(8) WSDL定義で配列を使用した場合のデータ型の名前空間名について

(1) RPC形態のSOAPアプリケーションの移行

RPC形態では,WSDL定義から生成されるスタブ,スケルトン,およびサービスデプロイ定義の内容がバージョン05-00および05-05から変更になります。また,DD(web.xml)およびユーザ実装も修正する必要があります。

ここでは,SOAPアプリケーションを新規開発した場合と,既存のJavaクラスを利用して開発した場合に分けて移行手順を説明します。また,WSDLの配列定義についての注意事項を示します。

(a) 新規開発した場合の移行手順(RPC)

移行手順

  1. WSDL2Javaコマンドを使用して,スタブとスケルトンを再生成します。
  2. ユーザ実装部分でSOAP通信基盤が提供するAPIを使用している場合は,パッケージ名「com.cosminexus.c4web.*」を「com.cosminexus.cws.*」に変更します。
  3. 再生成したソースコードおよび変更したユーザ実装をコンパイルします。
  4. DD(web.xml)中のパッケージ名「com.cosminexus.c4web.*」を「com.cosminexus.cws.*」に変更します。
  5. J2EEサーバに配置するためのアーカイブ(WARファイル)を作成します。
    アーカイブの作成については,「3.9 アーカイブ(WARファイル)の作成」を参照してください。
  6. WARファイルをデプロイします。
    これでSOAPアプリケーションの移行は完了です。
(b) 既存のJavaクラスを利用して開発した場合の移行手順(RPC)

移行手順

  1. Java2WSDDコマンドを使用して,サービスデプロイ定義を再生成します。
  2. DD(web.xml)中のパッケージ名「com.cosminexus.c4web.*」を「com.cosminexus.cws.*」に変更します。
  3. J2EEサーバに配置するためのアーカイブ(WARファイル)を作成します。
    アーカイブの作成については,「3.9 アーカイブ(WARファイル)の作成」を参照してください。
  4. WARファイルをデプロイします。
    これでSOAPアプリケーションの移行は完了です。
(c) WSDL定義での配列定義について

Java2WSDLコマンドで生成される配列定義が,05-00および05-05と,06-00以降とで異なります。各バージョンの配列定義の形式を次に示します。

配列型の名称が"ArrayOf〜"から"SequenceOf〜"に変更になるため,作成したWSDLからソースコードを生成すると,生成されるクラス名も変更になるので注意してください。

(d) 既存のJavaクラスを利用して開発した場合の注意事項

既存のJavaクラスでjava.util.Date型を使用していた場合,05-00と05-05以降ではSOAPメッセージの形式が異なります。SOAPメッセージの形式を合わせるためには,java.util.Calendar型に変更してください。

(2) WSDL定義でのデータ型とJavaでのデータ型についての注意事項

バージョン05-00と05-05以降では,WSDL定義およびJavaでのデータ型の一部が異なります。異なるデータ型を使用している場合,クライアントおよびサーバ側実装ファイル(Implファイル)を新しいクラス名に変更する必要があります。

次の場合に分けて,WSDL定義およびJavaでのデータ型の相違点を示します。

(3) WSDL定義での定義内容と生成されるクラス,メソッド名についての注意事項

バージョン05-05以降では,WSDL定義での定義内容によって生成されるクラス名,メソッド名の関係がバージョン05-00から一部変更になります。変更になるものは,クライアントおよびImplファイルを新しいクラス,メソッド名に変更する必要があります。

次に,WSDL定義での定義内容によって生成されるクラス名,メソッド名の変更内容を示します。

(4) 提供するAPIの変更についての注意事項

SOAP通信基盤のバージョン05-05以降では,C4QNameクラスのtoStringメソッドの戻り値の形式が変更になります。また,バージョン05-05以降では,C4QNameクラスのsetLocalPartメソッドおよびsetNamespaceURIメソッドが削除されます。ここでは,toStringメソッドの変更内容,およびsetLocalPartメソッドとsetNamespaceURIメソッドをバージョン05-00で利用していた場合の修正例について示します。

(a) toStringメソッドの戻り値の形式の変更内容

バージョン05-00のtoStringメソッドで,接頭辞とローカル部の両方を設定している場合は,「接頭辞:ローカル部」の形式で返されましたが,バージョン05-05以降では「{接頭辞}ローカル部」の形式で返されます。

(b) バージョン05-00でsetLocalPartメソッドおよびsetNamespaceURIメソッドを利用していた場合の修正例

バージョン05-00で,setLocalPartメソッドおよびsetNamespaceURIメソッドを利用していた場合の,バージョン05-05以降での修正例を示します。

(5) トレースファイル名,およびアプリケーションログ名の変更についての注意事項

SOAPサービス側のトレースファイル,およびアプリケーションログの名称がバージョン05-05以降で変更になります。したがって,SOAPアプリケーション移行後にSOAPサービスを再開した場合,移行前のトレースファイル,およびアプリケーションログには情報は出力されません。

また,Managerのログエージェントを利用してSOAPアプリケーションのトレースファイルを管理している場合,ログエージェントの設定ファイル(logagent.properties)の指定を見直してください。

(6) サーバ定義ファイルの識別子についての注意事項

サーバ定義ファイルのキー名称に指定する識別子は,バージョン05-00では,SOAPアプリケーションのコンテキストルートの一部分だけを指定していましたが,バージョン05-05以降では,コンテキストルート全体を指定する必要があります。

例えば,接続先URLが「http://localhost:8080/WebApp1/Service1/services/UserInfo」の場合,バージョン05-00では「Service1」を識別子として指定していましたが,バージョン05-05以降では「WebApp1/Service1」のようにコンテキストルート全体(間の「/」を含む)を指定する必要があります。

なお,コンテキストルート中に「/」が含まれない場合は,識別子を変更する必要はありません。識別子については,「10.2 サーバ定義ファイルの設定」を参照してください。

(7) 定義ファイルの移行

定義ファイルの移行については,「付録A.3 バージョン06-70からの移行手順」を参照してください。

(8) WSDL定義で配列を使用した場合のデータ型の名前空間名について

配列データを使用する場合,SOAP通信基盤で送信するSOAPメッセージ上にある配列データの要素型の名前空間名が以前のバージョンと異なります。SOAP通信基盤を他社のSOAP製品と接続する場合,SOAP製品によってはSOAPメッセージ上の名前空間名が異なるとエラーになる場合がありますので注意してください。また,05-00または05-05で他社製品と接続している場合は,接続テストを実施したあとに,運用を開始してください。他社製品と通信できない場合があります。

WSDLでの配列要素のデータ型と,SOAPメッセージ上のデータ型の対応表を次に示します。

表A-4 SOAPメッセージ上のデータ型の対応

WSDLでのデータ型 SOAPメッセージ上の配列要素のデータ型
データ型 名前空間 05-00 05-05 06-00以降
データ型 名前空間名 データ型 名前空間名 データ型 名前空間名
int xsd※1 int xsd※1 int xsd※1 int xsd※1
int soapenc※2 int xsd※1 int soapenc※2 int soapenc※2
boolean xsd※1 boolean xsd※1 boolean xsd※1 boolean xsd※1
boolean soapenc※2 boolean xsd※1 boolean soapenc※2 boolean soapenc※2
byte xsd※1 byte xsd※1 byte xsd※1 byte xsd※1
byte soapenc※2 byte xsd※1 byte soapenc※2 byte soapenc※2
decimal xsd※1 decimal xsd※1 decimal soapenc※2 decimal xsd※1
decimal soapenc※2 decimal xsd※1 decimal soapenc※2 decimal soapenc※2
double xsd※1 double xsd※1 double xsd※1 double xsd※1
double soapenc※2 double xsd※1 double soapenc※2 double soapenc※2
float xsd※1 float xsd※1 float xsd※1 float xsd※1
float soapenc※2 float xsd※1 float soapenc※2 float soapenc※2
integer xsd※1 integer xsd※1 integer xsd※1 integer xsd※1
integer soapenc※2 integer xsd※1 integer soapenc※2 integer soapenc※2
long xsd※1 long xsd※1 long xsd※1 long xsd※1
long soapenc※2 long xsd※1 long soapenc※2 long soapenc※2
short xsd※1 short xsd※1 short xsd※1 short xsd※1
short soapenc※2 short xsd※1 short soapenc※2 short soapenc※2
string xsd※1 string xsd※1 string xsd※1 string xsd※1
string soapenc※2 string xsd※1 string soapenc※2 string soapenc※2

注※1
xsdは名前空間URIが"http://www.w3.org/2001/XMLSchema"であることを示します。

注※2
soapencは名前空間URIが"http://schemas.xmlsoap.org/soap/encoding/"であることを示します。