JDeveloperでは、次のプリミティブXMLスキーマ型およびプリミティブXMLスキーマ型の配列が、Webサービスのパラメータおよび戻り値としてサポートされます。
XMLスキーマ型 | Java型 |
---|---|
string | java.lang.String |
boolean | java.lang.Boolean |
decimal | java.lang.Double |
float | java.lang.Float |
double | java.lang.Double |
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 |
org.w3c.dom.Element | |
JavaBeans(プロパティの型が上記に含まれるもの) |
Webサービスを目的とする場合、JavaBeansは、次の制限に準拠する任意のJavaクラスになります。
setMethod()
とgetMethod()
)の順序が重要でないことこれらの型を使用するメソッドは、JDeveloperのWebサービス公開ウィザードでは公開できません。説明を参照するには、ウィザードの「指定不可の理由」をクリックしてください。
charおよびchar[]のシリアライザを記述して登録すると、この問題を回避できます。
org.w3c.dom.Elementの配列を返すWebサービスを生成すると、JDeveloperによって適切なWSDLドキュメントが生成され、Webサービスが正常にデプロイされます。JDeveloperではこのようなWebサービスに対する適切なスタブも生成されますが、OC4Jはorg.w3c.dom.Elementの配列を返すことをサポートしていないため、エラーが返されます。
WSDLドキュメントで記述されている型が、Webサービスのスタブおよびスケルトンのジェネレータにより解釈されない場合は、UnknownType
というプレースホルダが生成され、クラスは正しくコンパイルされません。また、生成されたスタブ・クラスには、ファイルの先頭にコメントが記載されます。これを解決するには、手動で型マッピングを行う必要があります。独自のSOAPシリアライザ/デシリアライザを記述して、それにJava型を渡し、SOAPのエンコーディング規則を使用してSOAP表現に変換することができます。シリアライザ/デシリアライザは、Webサービスのデプロイメント・ディスクリプタの中で、各Java型に対して記述する必要があります。
Oracle9i Application Serverリリース2のドキュメント・セットに含まれている『Oracle9iAS Web Services開発者ガイド』に、参考例が記載されています。このマニュアルは、Oracle Technology Network Japan(OTN-J)のWebサイト(http://otn.oracle.co.jp/document/products/webservices/
)からも参照できます。