Webサービスとの間で受け渡しが可能なオブジェクトは、XML型にシリアライズしたり、また元の型にデシリアライズできる必要があります。 自動的に処理されるオブジェクトは、Javaプリミティブ型および特定のJava標準型です。自動的にシリアライズされないオブジェクトを使用してWebサービスを作成する場合は、独自のカスタム・シリアライザを記述することができます。
Webサービスとの間で受け渡しができるオブジェクトは、JavaBeanの規則に準拠しているオブジェクトです。Webサービスを目的とする場合、JavaBeanは、次の制限に準拠する任意のJavaクラスになります。
setMethod()
とgetMethod()
)の順序が重要でないこと
name
の場合、アクセッサはgetName
およびsetName
となります。 詳細は、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.