JavaクラスとWebサービス

Webサービスとの間で受け渡しが可能なオブジェクトは、XML型にシリアライズしたり、また元の型にデシリアライズできる必要があります。 自動的に処理されるオブジェクトは、Javaプリミティブ型および特定のJava標準型です。自動的にシリアライズされないオブジェクトを使用してWebサービスを作成する場合は、独自のカスタム・シリアライザを記述することができます。

Webサービスとの間で受け渡しができるオブジェクトは、JavaBeanの規則に準拠しているオブジェクトです。Webサービスを目的とする場合、JavaBeanは、次の制限に準拠する任意のJavaクラスになります。

詳細は、http://java.sun.com/products/javabeans/reference/api/index.htmlのJavaBean仕様を参照してください。

さらにWebサービスでは、各オブジェクトのプロパティはJava型の1つで、XMLスキーマの単純な型にマップされる必要があります。 これらは次の表のとおりで、Webサービス向けにパラメータと戻り値によってサポートされるプリミティブXMLスキーマ型およびプリミティブXMLスキーマ型の配列です。 サービス・メソッドによって、org.w3c.dom.Elementとして渡される単一のXML要素データを受け取り、戻すことができます。

このトピックで記述されていないオブジェクト(たとえば、charおよびchar[]、またはjava.util.Collection)を使用するJavaクラスのWebサービスを作成する場合は、そのクラスを適切に処理するカスタム・シリアライザを記述することがでます。 詳細は、このトピックの最後の「手動による型マッピング」を参照してください。

XMLスキーマ型 Java型
string java.lang.String
boolean java.lang.Boolean
decimal java.lang.Double
float java.lang.Float
double java.lang.Double
headers="xml"dateTime java.util.Date
time java.util.Date
date java.util.GregorianCalendar
base64Binary java.lang.Byte[]
normalizedString java.lang.String
integer java.lang.Integer
long java.lang.Long
int java.lang.Integer
short java.lang.Short
byte java.lang.Byte

手動による型マッピング

WSDLドキュメントで記述されている型が、Webサービスのスタブおよびスケルトンのジェネレータにより解釈されない場合は、UnknownTypeというプレースホルダが生成され、クラスは正しくコンパイルされません。また、生成されたスタブ・クラスには、ファイルの先頭にコメントが記載されます。これを解決するには、手動で型マッピングを行う必要があります。独自のSOAPシリアライザ/デシリアライザを記述して、それにJava型を渡し、SOAPのエンコーディング規則を使用してSOAP表現に変換することができます。 シリアライザ/デシリアライザは、Webサービスのデプロイメント・ディスクリプタの中で、各Java型に対して記述する必要があります。

カスタム・シリアライザ作成に関する詳細は、http://otn.oracle.com/tech/webservices/htdocs/samples/serialize/index.htmlを参照してください。


J2EE Webサービスの作成について
SOAP Webサービスの作成について
Webサービス・スタブの作成について

 

Copyright © 1997, 2004, Oracle. All rights reserved.