Oracle Application Server Web Services開発者ガイド 10g(10.1.3.1.0) B31868-01 |
|
Oracle Application Server Web Servicesは、SOAP 1.1および1.2メッセージをサポートしています。メッセージ書式には、style="document"またはstyle="rpc"、およびuse="literal"またはuse="encoded"があります。
この章の項目は、次のとおりです。
この項では、OracleAS Web Servicesの現行リリースでサポートされているメッセージ書式について説明します。内容は、次のとおりです。
OracleAS Web Servicesでサポートされているメッセージ書式を理解するには、Web Service Description Language(WSDL)1.1とワイヤ書式の関係を理解すると役に立ちます。ワイヤ書式とは、Simple Object Access Protocol(SOAP)メッセージまたはペイロードが伝送中に実際に取る表現のことです。メッセージ書式は、WSDLに定義されているバインディングのuseおよびstyle属性によって決まります。メッセージ部分を定義するXMLスキーマのタイプにより、メッセージ書式が拡張されます。この場合、WSDLは規約だとみなすことができます。WSDLの様々な属性を定義することにより、メッセージのワイヤ書式を変更します。
通常、相互運用性に関して発生する問題は、実行時にワイヤ書式で通知されます。多くの場合、これらの問題は、WSDLを調整し、Webサービスのアーチファクトを再生成することによって解決できます。
メッセージ書式とワイヤ書式の関係は、1対1ではありません。たとえば、ランタイムSOAPメッセージを、rpc-literalスタイルのWebサービスであるサービスBによって生成されるメッセージと同じ種類に見えるようにするXMLスキーマを使用して、document-literalスタイルのWebサービスとしてサービスAを定義できます。この場合、サービスAのstyleおよびuse(すなわち、メッセージ書式)をrpcおよびliteralに変更しても、サービスAはサービスBと同じにはなりません。変更しても、ランタイムSOAPメッセージは、変更内容とはまったく異なるものになってしまいます。サービスAで使用されているスキーマも変更する必要があるのです。
次の各項では、OracleAS Web Servicesでサポートされているメッセージ書式について簡単に説明します。
関連項目
WSDLのバインディング属性 |
SOAPペイロードには、rpcスタイルとdocumentスタイルがあります。通常、rpcスタイルのペイロードは、リモート・プロシージャ・コールまたはメソッド・コールを起動する必要があるときに使用します。rpcスタイルの場合、リクエストのSOAPボディにある最上位のXML要素の名前は、常にWSDL操作の名前になります。これらの名前は、任意のバインディングにおいて一意であるため、曖昧さはありません。通常、SOAPのXMLメッセージはメソッド名とパラメータで構成されており、これらはすべてXMLで表現されます。
WSDL操作をオーバーロードする場合、対応する操作バインディングには一意のSOAPAction
を指定する必要があります。rpcスタイルのSOAPボディ要素(<body>
)の構造については、SOAP 1.1仕様のSection 7を参照してください。
documentスタイルのペイロードのSOAPボディには、SOAP 1.1仕様のSection 7に準拠する必要がないXMLが含まれますが、このXMLは、メッセージのペイロードを定義するためにXMLスキーマのグローバル要素を使用します。このスキーマは、WSDLのtype
セクション内に定義するか、そのセクションにインポートします。
SOAPクライアントおよびサーバーは、WSDLのbinding
の項にある、use
属性で指定されたルールに従って、SOAPペイロードの<body>
要素のXMLコンテンツを解釈します。このクライアントおよびサーバーは、互いに正しくデータを解釈できるように同じエンコード・ルールに従う必要があります。
use="literal"の場合、入出力メッセージのSOAPボディをエンコードおよび解釈するルールは、スキーマに完全に基づいて記述されたものになります。
use="encoded"の場合、SOAPボディのencodingStyle
属性は、SOAP仕様に基づいてメッセージをエンコードおよび解釈するルールを判別します。
また、SOAPエンコーディング・スキーマの拡張機能に定義されている型を使用することもできます。
次の各項では、OracleAS Web Servicesでサポートされているメッセージ書式について説明します。
document-literalは、OracleAS Web Servicesのデフォルトのメッセージ書式です。document-literal操作には、wrappedとbareという2つの一般的なスタイルがあります。
document-literalは、WS-I Basic Profile 1.0および1.1に準拠しています。
各document-literal操作は、入力メッセージの最上位要素のQName
を使用して一意に識別されます。.NET Webサービスとの相互運用性が最もよいのはwrappedスタイルのdocument-literalであるため、OracleAS Web Servicesのデフォルトのメッセージ書式としてはこの方式を使用することをお薦めします。
例5-1は、document-literalメッセージ書式のリクエスト・メッセージを示しています。SOAPボディ(env:Body
)の下のXML要素部分(payloadDocument
)は、WSDLのスキーマに定義されているグローバル要素のドキュメント・インスタンスである必要があることに注意してください。
この例は、SOAP 1.1メッセージに準拠しています。SOAP 1.2メッセージに準拠するようにこの例を変更するには、xmlns:env
の値をhttp://www.w3.org/2003/05/soap-envelope
に変更します。
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns0="http://ws.oracle.com/doc-lit"> <env:Body> <ns0:payloadDocument> <ns0:name>Scott</ns0:name> <ns0:data>Hello</ns0:data> </ns0:payloadDocument> </env:Body> </env:Envelope>
rpc-encodedメッセージ書式では、SOAP仕様に定義されているエンコード・ルールを使用します。
http://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383512
SOAP 1.1 rpc-encodedメッセージ書式のencodingStyle
属性は、次の値で表されます。
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
http://www.w3.org/TR/2003/REC-soap12-part2-20030624/#soapenc
SOAP 1.2 rpc-encodedメッセージ書式のencodingStyle
属性は、次の値で表されます。
encodingStyle="http://www.w3.org/2003/05/soap-encoding"
id
およびhref
属性を使用)。
http://www.oracle.com/webservices/internal
によって示されるその他のJava型のマッピングのサポートを提供します。サポートされているデータ型については、表5-1を参照してください。
例5-2は、rpc-encodedメッセージ書式を使用するリクエスト・メッセージを示します。SOAPボディ(env:Body
)の下にある送信対象のXML要素部分(echoString
)のタグ名は、対応するWSDL操作の名前と同じである必要があることに注意してください。env:encodingStyle
属性は、使用されているSOAPエンコード・スタイルを示します。操作要素の下の各XML要素部分(stringParam
)は、パラメータに対応します。これは、simpleType
のインスタンスまたはグローバル型定義である必要があります。グローバル型定義である場合、WSDLのスキーマ内にあるか、SOAPエンコード拡張型の1つである必要があります。
OracleAS Web Servicesに対するrpc-encodedリクエスト・メッセージ(またはOracleAS Web Servicesによって生成されたスタブに対するrpc-encodedレスポンス・メッセージ)は、xsi:type
属性がなくても使用できます。
例5-2および例5-3は、SOAP 1.1のメッセージに準拠しています。これらの例をSOAP 1.2のメッセージに準拠するようにするには、次のようにします。
xmlns:env
の値をhttp://www.w3.org/2003/05/soap-envelope
に変更します。
env:encodingStyle
の値をhttp://www.w3.org/2003/05/soap-encoding
に変更します。<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns0="http://ws.oracle.com/rpc-enc"> <env:Body> <ns0:echoString env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <stringParam>Hello</stringParam> </ns0:echoString> </env:Body> </env:Envelope>
例5-3は、rpc-encodedメッセージ書式を使用するレスポンス・メッセージを示しています。OracleAS Web Servicesからのrpc-encodedレスポンス・メッセージ(またはOracleAS Web Servicesによって生成されたスタブ内のrpc-encodedリクエスト・メッセージ)には、常にxsi:type
属性が含まれます。
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns0="http://ws.oracle.com/rpc-enc"> <env:Body> <ns0:echoStringResponse env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <stringParam xsi:type="xsd:string">Hello</stringParam> </ns0:echoStringResponse> </env:Body> </env:Envelope>
SOAP実装では多くの場合、rpc-encodedメッセージ書式を使用するメッセージでは通常、メッセージ・ペイロードの要素ごとにxsi:type
属性が使用されます。この属性は、オブジェクトのシリアライズおよびデシリアライズに役立ちます。多くの場合、xsi:type
属性はオプションです。xsi:type
属性が必須なのは、要素がスキーマに定義されている要素タイプの派生タイプのインスタンスである場合のみです。インバウンドSOAPメッセージの場合、OracleAS Web Servicesは、xsi:type
属性の有無に関係なくメッセージを受け入れます。rpc-encoded書式のアウトバウンドSOAPメッセージの場合、OracleAS Web Servicesは常にxsi:type
属性を発行します。
例5-4および例5-5は、SOAP 1.1のメッセージに準拠しています。これらの例をSOAP 1.2のメッセージに準拠するようにするには、次のようにします。
xmlns:env
の値をhttp://www.w3.org/2003/05/soap-envelope
に変更します。
env:encodingStyle
の値をhttp://www.w3.org/2003/05/soap-encoding
に変更します。
例5-4は、rpc-encodedメッセージ書式を使用した、echo
操作のリクエスト・メッセージを示しています。なお、このコード・サンプルにはxsi:type="xsd:string"
属性は含まれていません。
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns0="http://ws.oracle.com/rpc-enc"> <env:Body> <ns0:echo env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <param>some string</param> </ns0:echo> </env:Body> </env:Envelope>
例5-5は、同じrpc-encoded書式のリクエスト・メッセージで、xsi:type
属性があるものを示しています。
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns0="http://ws.oracle.com/rpc-enc"> <env:Body> <ns0:echo env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <param xsi:type="xsd:string">some string</param> </ns0:echo> </env:Body> </env:Envelope>
サポートされている型の完全なリストについては、JAX-RPC 1.1仕様の4〜5章を参照してください。JAX-RPC 1.1仕様については、次のURLを参照してください。
http://java.sun.com/webservices/jaxrpc/index.jsp
OracleAS Web Servicesのrpc-encodedメッセージ書式でサポートされているJava型およびOracle固有型の完全なリストについては、表5-1を参照してください。Oracle固有型に対するJava型のマッピングのサポートは、次に示すOracleAS Web Services固有の名前空間で指定されます。
http://www.oracle.com/webservices/internal
この名前空間は、JAX-RPC 1.1によってサポートされていないCollection
などの標準Java型のための、非標準のXMLスキーマ定義に対応しています。
Map
またはCollection
の項目として組み込まれていない値タイプ(ユーザー定義のMyBean
型など)を使用する場合、valueTypeClassName
引数の値を使用して、WSDLの生成時にこれらの型をWebServicesAssemblerツールに対して宣言する必要があります。
java -jar wsa.jar -genWsdl -valueTypeClassName hello.MyBean -valueTypeClassName hello.MyFoo...
このコマンドの説明:
genWsdl
: JavaインタフェースをベースにしてWSDLを生成します。「genWsdl」を参照してください。
valueTypeClassName
: java.util.Collection
およびjava.util.Map
に使用されるJAX-RPC値タイプの完全修飾クラス名を指定します。「valueTypeClassName」を参照してください。
これにより、生成されたWSDLがこれらの値タイプのスキーマ定義を含めることが可能になります。これによって、ランタイムが、対応するシリアライズ値を正しく生成できるようになります。Webサービスを(Javaクラス、EJB、データベース・リソースなどから)ボトムアップ方式でアセンブルするすべてのWebServicesAssemblerコマンドおよびAntタスクでは、valueTypeClassName
引数がサポートされています。
OracleAS Web Servicesは、rpc-encodedメッセージ書式とdatabinding=false
の組合せはサポートしていません。
rpc-literalメッセージ書式は、WS-I Basic Profile 1.0および1.1に準拠しています。この書式は、rpcスタイルのメッセージ・ペイロード構造を使用しますが、プロシージャによって渡される型をliteral方式で記述する方法もサポートしています。この場合、literalとは、すべてのパラメータ型に対するスキーマはあるが、メッセージ・ボディ自体のペイロードに対するスキーマがないことを意味しています。
例5-6は、rpc-literalメッセージ書式でコード化されたリクエスト・メッセージを示しています。SOAPボディ(env:Body
)の下にあるXML要素部分(echoString
)のタグ名は、対応するWSDL操作の名前と同じである必要があることに注意してください。操作要素の下の各XML要素部分(stringParam
)は、パラメータに対応しており、simpleType
のインスタンスまたはグローバル型定義である必要があります。グローバル型定義である場合は、WSDLのスキーマ内にある必要があります。
この例は、SOAP 1.1メッセージに準拠しています。SOAP 1.2メッセージに準拠させる場合は、xmlns:env
の値をhttp://www.w3.org/2003/05/soap-envelope
に変更します。
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns0="http://ws.oracle.com/rpc-lit"> <env:Body> <ns0:echoString> <stringParam>Hello</stringParam> </ns0:echoString> </env:Body> </env:Envelope>
WebServicesAssemblerツールには、Webサービスで使用されるメッセージ書式を制御するための各引数が用意されています。これらの引数を使用すると、メッセージ書式としてrpcまたはdocument("wrapped"または"bare")、encodedまたはliteralを指定できます。
次のWebServicesAssemblerコマンドを使用すると、use
およびstyle
引数を使用してWebサービスのメッセージ書式を指定できます。これらのコマンドの詳細は、第18章「WebServicesAssemblerの使用方法」を参照してください。
次の例では、assemble
コマンドを使用して、Webサービスのサーバー・コンポーネントをアセンブルしています。style
およびuse
引数を使用して、メッセージ書式としてrpc-literalを使用するよう指定しています。
java -jar wsa.jar -assemble -appName $(app.name) -serviceName HelloServiceWSIF -uri $(app.name) -interfaceName oracle.demo.hello.HelloInterface -className oracle.demo.helllo.HelloImpl -input $(service.classes.dir) -output build -ear dist/$(app.name).ear -style rpc -use literal
このコマンドの説明:
assemble
: ボトムアップ方式でJavaファイルからWebサービスを生成します。このコマンドにより、デプロイ可能なアーカイブを作成するために必要なすべてのファイルが作成されます。「assemble」を参照してください。
appName
: アプリケーションの名前を指定します。この名前は、通常context
やuri
などの他の引数のベース値として使用されます。「appName」を参照してください。
serviceName
: サービス名を指定します。「serviceName」を参照してください。
uri
: Webサービスに使用するURIを指定します。「uri」を参照してください。
interfaceName
: サービス・エンドポイント・インタフェース(SEI)を格納するJavaクラスの名前(パッケージ名を含む)を指定します。「interfaceName」を参照してください。
classname
: Webサービスの実装クラスのクラス名(パッケージ名を含む)を指定します。「className」を参照してください。
input
: WEB-INF/classes
にコピーされるクラスを格納するJARまたはディレクトリを指定します。この引数は、WebServicesAssemblerによって使用されるクラスパスに追加されます。「input」を参照してください。
output
: 生成されるファイルを格納するディレクトリを指定します。そのディレクトリが存在しない場合は、作成します。「output」を参照してください。
ear
: 生成されるEARファイルの名前と位置を指定します。「ear」を参照してください。
style
: ボトムアップ方式Webサービス・アセンブリの場合、この引数は、生成されるWSDL内のメッセージ書式のstyle
属性を指定します。「style」を参照してください。
use
: ボトムアップ方式Webサービス・アセンブリの場合、この引数は、生成されるWSDL内のメッセージ書式のuse
属性を指定します。「use」を参照してください。Javaサービス・エンドポイント実装は、rpc-encoded、rpc-literalまたはdocument-literal書式で公開できます。ただし、表5-1にリストされているattachment
データ型をサービス・エンドポイント実装で使用する場合は、使用できるのはrpc-encodedのみです。attachment
型のいずれも使用しない場合は、rpc-literalまたはdocument-literal書式を使用して相互運用性を向上させることができます。これらのいずれの書式を使用しても、JavaオブジェクトとXML間のマーシャリングでは同じパフォーマンスが実現されます。
この項では、Webサービスの設計時にメッセージ書式を選択する際の一般的なガイドラインのいくつかについて説明します。メッセージ書式の選択時には、サポートするクライアントの機能要件を考慮してください。想定されるクライアントの機能要件や推奨されるメッセージ書式については、表5-2を参照してください。
OracleAS Web Servicesは、プログラム的な方法とWebServicesAssemblerツールを使用してWebサービスをボトムアップおよびトップダウン方式でアセンブルする方法の両方でSOAP 1.1および1.2メッセージをサポートしています。
SOAP with Attachments API for Java(SAAJ)バージョン1.2は、SOAPメッセージをプログラム内から表現および操作するモデルとなるものです。標準のSAAJのAPIは、SOAP 1.1をサポートしています。SAAJの詳細は、次のWebアドレスを参照してください。
http://java.sun.com/webservices/saaj/index.jsp
OracleのSAAJ 1.2 API拡張機能(OraSAAJ)を使用すると、WebサービスがSOAP 1.2メッセージを操作できるようになります。
OracleAS Web Servicesは、Javaオブジェクトとして添付ファイル付きSOAPメッセージを作成するための仕様であるSAAJ 1.2をサポートしています。ただし、SAAJ 1.2の標準APIがサポートしているのはSOAP 1.1メッセージのみです。このため、SOAP 1.2メッセージに対するプログラムにおけるサポートを提供できるように、OracleAS Web Servicesにはoracle.webservices.soap
パッケージが含まれています。このパッケージに含まれるインタフェースを使用すると、SOAP 1.2メッセージ・オブジェクトを操作することや、SOAP 1.2メッセージ・オブジェクトに情報を追加することが可能になります。
このパッケージのクラスVersionedMessageFactory
およびVersionedSOAPFactory
は、標準SAAJのクラスMessageFactory
およびSOAPFactory
の拡張機能です。VersionedMessageFactory
およびVersionedSOAPFactory
クラスのメソッドには、標準のSAAJのAPIの使用時にSOAPメッセージのバージョンを指定するための追加パラメータが含まれています。
OraSAAJの拡張機能は、javax.xml.rpc.handler.Handler
から使用できます。SOAP 1.2 SAAJメッセージを操作するには、多くの場合、標準のjavax.xml.soap.*
クラスが使用されます。ただし、SOAP 1.2に用意されている機能を使用する場合は、OraSAAJ APIを使用する必要があります。
例5-7は、標準のjavax.xml.soap.*
クラスとOraSAAJクラスを一緒に使用する方法を示しています。このコード例では、SOAP 1.2メッセージを新規に作成しています。VersionedMessageFactory
メソッドは、javax.xml.soap.SoapMessage
オブジェクトを戻します。これにより、メッセージに対してgetBody
やgetEnvelope
などの標準のjavax.xml.soap.*
メソッドを使用できるようになります。
addFault
メソッドは、SOAP 1.2フォルトをメッセージに追加します。SOAP 1.2フォルトを送信するには、OraSAAJ Fault12
、FaultCode12
、FaultValue12
およびFaultReason12
APIを使用する必要があります。これは、SOAP 1.2フォルトにはSOAP 1.1フォルトより多くの情報が含まれているためです。
public boolean handleResponse(MessageContext context) { ... // create a SOAP 1.2 message from scratch. // Note the use of VersionedMessageFactory to get a SOAPMessage // for a specific version of soap SOAPMessage message = ((VersionedMessageFactory)MessageFactory.newInstance()).createVersionedMessage(oracle.w ebservices.soap.SOAPVersion.SOAP_1_2); // Now standard APIs can be used. SOAPBody body = message.getSOAPPart().getEnvelope().getBody(); // However, if you need to send a fault, you must // use Oracle specific APIs, because SOAP 1.2 // faults contain more information than SOAP 1.1 faults. // Note the use of Fault12, FaultCode12, and FaultReason12 SOAPFault fault = body.addFault(); Fault12 soapFault = (Fault12) fault; FaultCode12 faultCode = soapFault.addCode(); FaultValue12 faultValue = faultCode.addFaultValue(); QNameAdapter faultCodeQName = new QNameAdapter("http://my.foo.com/", "myFaultCode", "foo"); faultValue.setFaultCode(faultCodeQName); FaultReason12 faultReason = soapFault.addReason(); faultReason.addFaultText().setValue("An unknown error occurred"); ... }
oracle.webservices
パッケージで提供されるOracleSOAPElement
インタフェースに含まれるメソッドを使用すると、添付ファイル付きのメッセージを処理できます。
oracle.webservices
パッケージには、XML要素(org.w3c.dom.Element
)をSOAP要素(javax.xml.soap.SOAPElement
)に変換するためにSOAPUtil
クラスのtoSOAPElement
メソッドが用意されています。SOAPElement
がdom.Element
を実装しているのであり、その逆ではないことに注意してください。
例5-8は、XML文書を作成し、SOAP要素に変換し、標準出力に出力するコード・サンプルを示しています。
... try { DOMParser parser = new DOMParser(); parser.parse(new StringReader( "<Flds:CustomerGroup xmlns:Flds=\"http://foo.com/foo.xsd\"> "<Flds:Customer>xyz</Flds:Customer> "</Flds:CustomerGroup>")); SOAPElement se = SOAPUtil.toSOAPElement( parser.getDocument().getDocumentElement()); ((XMLElement)se).print(System.out); } catch (Exception ex) { ex.printStackTrace(); } ...
ボトムアップ方式でのWebサービスの生成においてSOAPバージョン1.2のメッセージをサポートするため、WebServicesAssemblerには、soapVersion
引数が用意されています。使用可能な値は、1.1
、1.2
または1.1,1.2
です。デフォルト値は1.1
です。
値1.1,1.2
は、WebServicesAssemblerが2つのバインディングとともに2つのポートを作成することを意味します。1つのポートとバインディングがバージョン1.1をサポートし、もう1つのポートとバインディングがバージョン1.2をサポートします。各ポートは異なるURLにバインドする必要があります。つまり、同じURLアドレスを使用して両方のバージョンを同時にサポートすることはできません。
トップダウン方式のWebサービス開発でSOAP 1.2メッセージをサポートするには、SOAP 1.2バインディングがあるWSDLを提供する必要があります。SOAP 1.2バインディングがあるWSDLには、SOAP 1.2に固有のURIセットが含まれます。これらのURIのリストについては、表5-4を参照してください。
例5-9は、SOAP 1.2メッセージをサポートするWSDLを示しています。SOAP 1.2をサポートするために必要なURIおよび要素は、太字フォントで示されています。
<?xml version="1.0" encoding="UTF-8"?> <definitions name="Rpclitbottomup" targetNamespace="http://www.oracle.ws/rpcliteral" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://www.oracle.ws/rpcliteral" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:tns0="http://www.oracle.ws/rpcliteral/schema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" > <types> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.oracle.ws/rpcliteral/schema" elementFormDefault="qualified" xmlns:tns="http://www.oracle.ws/rpcliteral/schema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <complexType name="HelloMessage"> <sequence> <element name="longValue" type="long"/> <element name="age" type="int"/> <element name="greeting" type="string" nillable="true"/> <element name="name" type="string" nillable="true"/> <element name="id" type="decimal" nillable="true"/> </sequence> </complexType> </schema> </types> <message name="HelloInterface_hello"> <part name="msg" type="tns0:HelloMessage"/> </message> <message name="HelloInterface_helloResponse"> <part name="result" type="tns0:HelloMessage"/> </message> <portType name="HelloInterface"> <operation name="hello" parameterOrder="msg"> <input message="tns:HelloInterface_hello"/> <output message="tns:HelloInterface_helloResponse"/> </operation> </portType> <binding name="HelloInterfacePortBinding" type="tns:HelloInterface"> <soap12:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="hello"> <soap12:operation soapAction="http://www.oracle.ws/rpcliteral/hello" soapActionRequired="false"/> <input> <soap12:body use="literal" namespace="http://www.oracle.ws/rpcliteral" parts="msg"/> </input> <output> <soap12:body use="literal" namespace="http://www.oracle.ws/rpcliteral" parts="result"/> </output> </operation> </binding> <service name="Rpclitbottomup"> <port name="HelloInterfacePort" binding="tns:HelloInterfacePortBinding"> <soap:address location="REPLACE_WITH_ACTUAL_URL"/> </port> </service> </definitions>
「OracleAS Web Servicesのメッセージ」を参照してください。
詳細は、次を参照してください。
|
![]() Copyright © 2006 Oracle Corporation. All Rights Reserved. |
|