ヘッダーをスキップ

Oracle Containers for J2EE JSPタグ・ライブラリおよびユーティリティ・リファレンス
10g(10.1.3.1.0)

B31854-01
目次
目次
索引
索引

戻る 次へ

11 Webサービス・タグ

OC4Jで提供されるOracleのタグ・ライブラリを使用して、開発者はJSPページを作成し、Webサービスのクライアント・プログラムとして使用できます。この章では、タグ・ライブラリについて説明します。次の項目が含まれます。

この章では、読者にWebサービス、Simple Object Access Protocol(SOAP)およびWeb Services Description Language(WSDL)の知識があることを前提としていますが、これらの概要についても説明します。さらに、関連するWorld Wide Web Consortium(W3C)仕様など、追加ドキュメントの参照先も示します。

OC4J Webサービス・タグ・ライブラリは、Oracle Application Server Web Servicesに基づいています。詳細は、『Oracle Application Server Web Services開発者ガイド』参照してください。

Webサービスの概要

次の各項では、Webサービスの概念について大まかに説明します。

Webサービスの概要

Webサービスとは、コンピューティング・プラットフォームに関係なくクライアントがインターネット上で起動できる一連のプロシージャまたはアクションのことです。Webサービスは、SOAP、WSDLおよびUDDI(すべて後述します)など、広範囲に採用されている一連の標準に従って分散コンピューティング環境で緩やかに結合されたコンポーネントで構成されます。たとえば、「ワールド・カップ・サッカー」というサービスは、得点、スケジュールおよび順位表を取得するアクションで構成されます。

Webサービスには、次の機能が必要です。

Webサービス、特にOracleAS Web Servicesの詳細は、『Oracle Application Server Web Services開発者ガイド』を参照してください。

関連する仕様は、次のWebサイトを参照してください。

http://www.w3.org/TR/SOAP(W3C SOAP仕様)

http://www.w3.org/TR/wsdl(W3C WSDL仕様)

http://www.uddi.org/specification.html(UDDI仕様)

SOAPの概要と関連機能

この項では、SOAPの概要について説明します。詳細は、W3C Simple Object Access Protocol(SOAP)1.1仕様を参照してください。

SOAPはXMLベースの軽量のプロトコルで、型指定されたデータや構造化データをインターネット上またはその他の分散環境上で交換するために使用されます。これ以外の機能として、SOAPは、リモート・プロシージャ・コール(RPC)およびメッセージ指向のデータ交換をサポートします。

メッセージ指向の実装では、データ交換は、モジュール化パッケージングとエンコーディング・モデルを使用して行われます。メッセージは、操作に関連付けられた入力データ部分と出力データ部分が指定されたWSDLコンポーネントです。詳細は、「Webサービス・メッセージとXML Schema定義の概要」を参照してください。

RPCはソケットの代替で、プロシージャ・コール・レベルでの通信インタフェースを備えています。RPCはローカル・プロシージャのコールに似ていますが、実際には、コールの引数はパッケージ化されてリモート・ターゲットに送信されます。RPC機能では、リクエスト/レスポンスの方法論を利用しています。この場合、エンド・ポイントでは、プロシージャ指向のメッセージを受信し、対応するレスポンスを返信します。

SOAPをRPCとともに使用する場合は、プロトコル・バインディングに依存しません。HTTPがプロトコル・バインディングの場合、HTTPリクエストはRPCコールに対応し、HTTPレスポンスはRPCレスポンスに対応しています。

SOAPの主な特長は、次のとおりです。

Web Services Description Languageの主要な要素の概要

Webサービスは、XMLベースのWeb Services Description Languageを使用してWSDL(.wsdl)文書に記述されます。

次に、WSDLの主要な用語を示します。

WSDLの仕様では、WSDL文書の一般的な構造の概要について説明しています。次の主要な要素が含まれています。詳細は、W3C Web Services Description Language(WSDL)1.1仕様を参照してください。

Webサービス・メッセージとXML Schema定義の概要

メッセージは、Webサービスの操作、つまりメソッドで使用されるパラメータを定義します。メッセージは、1つ以上のパートで構成される通信対象データの型指定された定義です。各パートは、「購入発注書」パートや「請求書」パートなどの論理エンティティに相当します。各パートには、関連付けられたデータ項目に対する型指定があります。

OracleAS Web ServicesなどのSOAPベースの実装では、メッセージで使用するデータ型は、XML Schema Definition(XSD)言語を使用して定義します。この言語は、事前定義の単純型とユーザー定義の複合型をサポートしています。

XSDを使用した実装の場合、メッセージを定義する構文は、次のとおりです。

   <message name="nmtoken">
      <part name="nmtoken" [type="qname"] [element="qname"] />
   </message>

この構文では、element属性は、XSD構文を使用して定義されたXSD複合型の場所を参照します。type属性はXSD単純型を、「nmtoken」は標準XMLの名前トークンを、「qname」は標準XMLの修飾名をそれぞれ示しています。メッセージ、および各メッセージのパートは0(ゼロ)以上です。

SOAPエンコーディング・スタイルのencodedでは、使用できるのは単純型のみであるため、element属性は使用されません。エンコーディング・スタイルがliteralの場合は、単純型も複合型も設定できます。したがって、<part>要素には、type属性かelement属性のいずれかを使用できます。ただし、両方は使用できません。

次に、後述の「例: WSDL定義」から抜粋したメッセージ定義の例を示します。

   <message name="GetLastTradePriceInput">
      <part name="body" element="xsd1:TradePriceRequest"/>
   </message>

GetLastTradePriceInputは、メッセージ名です。その名前が示すとおり、これは入力メッセージです。この場合、element属性は、複合型のTradePriceRequestが定義されている名前空間を参照します。次に、その定義例(後述の「例: WSDL定義」の一部)を示します。

   <element name="TradePriceRequest">
      <complexType>
         <all>
             <element name="tickerSymbol" type="string"/>
             <element name="companyName" type="string"/>
         </all>
      </complexType>
   </element>

XML Schemaの入門書は、次のW3Cのサイトから入手できます。

http://www.w3.org/TR/xmlschema-0/

Webサービスの例

この例では、WebサービスのWSDL定義を示し、HTTPリクエストとHTTPレスポンスにそれぞれ埋め込まれた入力メッセージと出力メッセージの例を示します。

例: WSDL定義

W3C Web Services Description Language(WSDL)1.1仕様には、次のWSDL文書の例が記載されています。この例では、入力として株価銘柄記号を受け取り、出力として現在の株価を戻す、株式相場サービスを定義しています。SOAPエンコーディング・スタイルのliteralを使用しているため、複合型が使用できます(実際に使用されています)。

<?xml version="1.0"?>
<definitions name="StockQuote"

targetNamespace="http://example.com/stockquote.wsdl"
          xmlns:tns="http://example.com/stockquote.wsdl"
          xmlns:xsd1="http://example.com/stockquote.xsd"
          xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
          xmlns="http://schemas.xmlsoap.org/wsdl/">

   <types>
      <schema targetNamespace="http://example.com/stockquote.xsd"
              xmlns="http://www.w3.org/2000/10/XMLSchema">
         <element name="TradePriceRequest">
            <complexType>
               <all>
                  <element name="tickerSymbol" type="string"/>
               </all>
            </complexType>
         </element>
         <element name="TradePrice">
            <complexType>
               <all>
                  <element name="price" type="float"/>
               </all>
            </complexType>
         </element>
      </schema>
   </types>

   <message name="GetLastTradePriceInput">
      <part name="body" element="xsd1:TradePriceRequest"/>
   </message>

   <message name="GetLastTradePriceOutput">
      <part name="body" element="xsd1:TradePrice"/>
   </message>

   <portType name="StockQuotePortType">
      <operation name="GetLastTradePrice">
         <input message="tns:GetLastTradePriceInput"/>
         <output message="tns:GetLastTradePriceOutput"/>
      </operation>
   </portType>

   <binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType">
      <soap:binding style="document" 
                    transport="http://schemas.xmlsoap.org/soap/http"/>
      <operation name="GetLastTradePrice">
         <soap:operation soapAction="http://example.com/GetLastTradePrice"/>
            <input>
               <soap:body use="literal"/>
            </input>
            <output>
               <soap:body use="literal"/>
            </output>
      </operation>
   </binding>

   <service name="StockQuoteService">
      <documentation>My first service</documentation>
         <port name="StockQuotePort" binding="tns:StockQuoteBinding">
            <soap:address location="http://example.com/stockquote"/>
          </port>
   </service>

</definitions>

WSDL定義では、最初に入力メッセージGetLastTradePriceInputおよび出力メッセージGetLastTradePriceOutputを指定し、次にこれらを操作GetLastTradePriceに結合した後、その操作のバインドとポートを定義します。


注意

  • この例では、データ交換に対するXML Schema定義も含め、Webサービス定義のあらゆる側面が同一文書内で設定されています。別の方法として、たとえばstockquote.xsdは、この文書内の名前空間ではなく、個別のXSD文書にすることもできます。この方法については、W3C WSDL仕様で説明しています。ただし、OC4J Webサービス・タグ・ライブラリでは、<import>要素を使用して他のWSDL文書をインポートするWSDL文書はサポートしていないことに注意してください。

  • この例では、ドキュメント・スタイルのバインディングを使用しています。ドキュメント・スタイルの場合、出力レスポンス・オブジェクトはXMLElement型のXMLドキュメントです。RPCスタイルの場合、出力オブジェクトは様々な型になります。

 

例: HTTPリクエストとレスポンスに埋め込まれたSOAPメッセージ

前述の例で定義されているWebサービスに対応して、この項ではメッセージの外観、つまりHTTPリクエストに埋め込まれSOAPエンベロープ化された入力メッセージとHTTPレスポンスに埋め込まれSOAPエンベロープ化された出力メッセージを示します。次の例は、W3C Web Services Description Language(WSDL)1.1仕様からの抜粋です。

次にリクエストを示します。

POST /StockQuote HTTP/1.1
Host: www.stockquoteserver.com
Content-Type: text/xml; charset="utf-8"
Content-Length: nnnn
SOAPAction: "SOAP_URI"

   <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
      <soapenv:Body>
         <m:GetLastTradePrice xmlns:m="xmlns_URI">
            <m:tickerSymbol>DIS</m:tickerSymbol>
         </m:GetLastTradePrice>
      </soapenv:Body>
   </soapenv:Envelope>

この例のxmlns_URIは、GetLastTradePrice操作とそのメッセージが定義されている名前空間を識別するために使用されるURI値です(定義例については、前述の「例: WSDL定義」にあるWSDL文書を参照してください)。また、tickerSymbolも定義されています。リクエストは、Walt Disney社の株価です。SOAP_URIは、SOAPのHTTPバインドに対するSOAPアクションのHTTPヘッダーを示すURIです。

次にレスポンスを示します。

HTTP/1.1 200 OK
Content-Type: text/xml; charset="utf-8"
Content-Length: nnnn

   <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
      <soapenv:Body>
         <m:GetLastTradePriceResponse xmlns:m="Some_URI">
            <m:price>34.5</m:price>
         </m:GetLastTradePriceResponse>
      </soapenv:Body>
   </soapenv:Envelope>

操作Xxxxに対するレスポンスは、慣例的にXxxxResponseと呼ばれます。Some_URIは、GetLastTradePriceResponse操作が定義されている名前空間を識別するために使用されるURI値です。

OC4J Webサービス・タグ

次の各項では、Webサービス・タグ・ライブラリの概要と詳細、およびタグ・ライブラリ実装のベースであるOracleAS Web Servicesの概要について説明します。

OracleAS Web Servicesの概要とタグ・ライブラリの実装

OC4Jが提供するWebサービス・タグ・ライブラリを使用すると、開発者は、Webサービスのクライアント・アプリケーション用JSPページを簡単に作成できます。実装には、SOAPベースの機能を使用します。クライアント・アプリケーションでは、WSDL文書にアクセスした後、WSDL情報を使用してWebサービスの操作にアクセスします。

また、このタグ・ライブラリでは、Oracleによる動的起動APIの実装を使用します。この実装の説明は、『Oracle Application Server Web Services開発者ガイド』に記載されています。クライアント・アプリケーションで実行時にWSDL文書を取得する場合は、動的起動APIを使用して、WSDL文書に記述されているSOAP操作を起動します。タグ・ハンドラでは、Webサービスを起動するSOAPリクエストの送信時とSOAPレスポンスの処理時にAPIを使用します。

Oracleの動的起動APIは、oracle.j2ee.ws.clientおよびoracle.j2ee.ws.client.wsdlパッケージのクラスとインタフェースで構成されています。

oracle.j2ee.ws.clientパッケージには、次の内容が含まれています。

oracle.j2ee.ws.client.wsdlパッケージには、次の内容が含まれています。

Webサービス・タグの機能の概要

この項では、OC4J Webサービス・タグ・ライブラリとその機能の概要について説明します。このタグ・ライブラリは、次の機能をサポートします。

また、タグ・ライブラリは、次の名前空間を持つバージョンのW3C XML Schemaを使用したWSDL文書で定義された起動操作をサポートしています。

http://www.w3.org/2001/XMLSchema

Webサービス・タグ・ライブラリには、webserviceタグ(必要に応じてmapタグとpropertyタグをネストできます)およびinvokeタグ(必要に応じてpartタグをネストできます)が含まれています。これらのタグは、次のように使用します。

Webサービス・タグの説明

次の各項では、JavaServer Pagesタグ・ライブラリの標準準拠の実装であるOC4J Webサービス・タグの詳細および構文表記について説明します。

Webサービス・タグ・ライブラリを使用する場合は、次の要件に注意してください。

taglibディレクティブ、予約済のタグ・ライブラリ・ディレクトリ、TLDファイルおよびuri値の内容の詳細は、『Oracle Containers for J2EE JavaServer Pages開発者ガイド』を参照してください。

この項で説明するタグの使用例は、「Webサービス・タグの例」を参照してください。


注意

  • このタグ構文では、接頭辞「ws:」が使用されます。慣例的にこのように表記しますが、必須ではありません。任意の接頭辞をtaglibディレクティブに指定できます。

  • このマニュアルのタグ構文規則の詳細は、「タグ構文の表記と意味」を参照してください。

 

Webサービスのwebserviceタグ

このタグを使用して、Webサービス・プロキシ、つまりoracle.j2ee.ws.client.WebServiceProxyインタフェースを実装するクラスのインスタンスを作成します。このタグには、WSDL文書のURLが必要です。次のように、バインディングとSOAP位置、またはサービス名とポートのいずれかを使用します。

  1. タグ属性にバインディングとSOAP位置が指定されている場合、タグ・ハンドラはそれらを使用してプロキシを作成します。この場合、サービス名とポートのタグ属性は無視されます。

  2. バインディングとSOAP位置が指定されていない場合、タグ・ハンドラはサービス名とポートを次のように使用します。

    1. タグ属性によってサービス名とポートが指定されている場合、タグ・ハンドラはそれを使用してプロキシを作成します。

    2. サービス名とポートが指定されていない場合、タグ・ハンドラは、WSDL文書の最初のサービスとそのサービスの最初のポートを使用します。

UDDIレジストリを介してWSDL文書にアクセスするWebサービスの場合は、バインディングとSOAP位置を使用すると非常に便利です。その場合は、UDDI問合せを使用してバインディングと位置を決定し、リクエスト時の式を使用してタグに設定できます。

作成されたWebサービス・プロキシは、ネストされた任意のmapタグを使用して、エントリをSOAPマッピング・レジストリに追加します。次項の「Webサービスのmapタグ」を参照してください。

構文

<ws:webservice wsdlUrl = "WSDL_URL_of_Web_service"
             [ id = "variable_name_for_Web_service_proxy" ]
             [ scope = "page" | "request" | "session" | "application" ]
             [ binding = "SOAP_binding_information" ]
             [ soapLocation = "SOAP_endpoint_URL" ]
             [ service = "service_name_in_WSDL" ]
             [ port = "port_name_for_service" ] >

...body / nested tags...

</ws:webservice>


注意

scope属性は、リクエスト時の式を取得できません。 


属性

Webサービスのmapタグ

相互運用性を維持するには、WSDL定義のSOAP/XMLデータ型をJavaクライアント・アプリケーションのJSPページで使用されるJava型にマップするマッピング機能が必要です。これは、OracleAS Web ServicesのSOAPマッピング・レジストリによって可能になります。

任意の数のmapタグをwebserviceタグ内にネストすると、Webサービス・プロキシはエントリをレジストリに追加できます。該当する型マッピングごとに1つのmapタグを使用します。

レジストリは、org.apache.soap.util.xmlパッケージのXMLJavaMappingRegistryクラスのインスタンスです。WebServiceProxyインスタンスには、レジストリにアクセスするgetXMLMappingRegistry()メソッドがあります。

mapタグには、型マッピングに役立つエンコーディング・スタイル、シリアライザ、デシリアライザおよび名前空間URIなどを指定する属性が含まれています。Webサービス・タグ・ライブラリは、カスタムのシリアライザおよびデシリアライザをサポートしており、ユーザーが独自のシリアライザやデシリアライザを作成することができます。


重要

mapタグの使用時は、このタグをwebserviceタグ内にネストする必要があります。 


構文

<ws:map localName = "local_name_of_SOAPXML_type"
        namespaceUri = "URI_of_namespace_for_SOAPXML_type"
        javaType = "Java_type_to_map"
        encodingStyle = "URL_of_SOAP_encoding_style"
        java2xmlClassName = "Java_to_XML_serializer"
        xml2javaClassName = "XML_to_Java_deserializer" />
属性

Webサービスのpropertyタグ

必要に応じて、このタグを使用して名前/値ペアを指定し、Webサービスのクライアント・アプリケーションで使用できる複数のカスタム・プロパティを定義します。たとえば、ネットワーク・ファイアウォールを経由してアクセスするためにプロキシが必要な場合は、propertyタグを使用して、HTTPプロキシのホストとポートを指定できます。次のプロパティがサポートされます。

構文

<ws:property name="http.proxyHost" | "http.proxyPort" | "javax.net.ssl.KeyStore"
             value = "property_value" />
属性

Webサービスのinvokeタグ

このタグを使用してWebサービスの操作を起動します。タグ・ハンドラは、リモートのWebサービス操作をコールし、SOAPリクエストに入力メッセージを渡して、SOAPレスポンスを待機します。操作を指定するだけでなく、戻されるレスポンスを格納するオブジェクトのオブジェクトIDを指定する必要があります。タグ・ハンドラでは、操作名を使用して、WSDL文書内でその操作を検索します。

invokeタグは、次のいずれかの方法でWebサービス・プロキシにアクセスできます。

オーバーロードされた操作(異なるI/Oメッセージを使用した同名の2つの操作)がある場合、invokeタグには、それぞれの操作に対する入力および出力メッセージ名を指定する属性がいくつか含まれます。この場合、RPCスタイルのバインディングでは、指定した入力メッセージ名と出力メッセージ名を使用して、操作のRPCシグネチャが構成されます。それ以外の場合、RPCシグネチャは、WSDL文書に従ったデフォルトとなります。

出力メッセージに複数のパートが含まれている場合、戻される結果は、メッセージ・パート(すべて単一のSOAPレスポンス内のパート)の配列になります。

OC4J 9.0.4以降の実装では、invokeタグはXMLプロデューサとして動作でき、toXMLObjName属性を使用してXML出力オブジェクトの明示的な受渡しをサポートします。これは、Web Object CacheタグやXML transformタグなど、他の種類のタグにinvokeタグをネストする場合に便利です。また、XML出力オブジェクトをJSPページのJspWriterオブジェクトに書き込んで、ユーザーのブラウザに直接出力できます。この機能は、xmlToWriter属性を使用して有効化します。


注意

  • SOAPレスポンスを待機すると、機能がブロックされます。

  • 出力結果オブジェクトのスコープ(id属性で識別)は、Webサービスのwebserviceタグに定義されているプロキシ・オブジェクトのスコープと同じです。webserviceタグ内でネストしたinvokeタグの場合、このスコープはwebservice開始タグからwebservice終了タグまでです。ただし、idオブジェクトにはJSPページのコンテキスト・オブジェクトのfindAttribute()メソッドを使用して、webserviceタグ以外からもアクセスできます。

 

構文

<ws:invoke id = "variable_name_for_output_result"
           operation = "operation_to_invoke"
         [ webservice = "variable_name_of_Web_service_proxy" ]
         [ inputMsgName = "name_of_input_message" ]
         [ outputMsgName = "name_of_output_message" ] 
         [ xmlToWriter = "true" | "false" ]
         [ toXMLObjName = "objectname" ] >

...body / nested tags...

</ws:invoke>
属性

Webサービスのpartタグ

操作の実行に入力メッセージ・パートの値が必要な場合は、入力パートごとに1つのpartタグをinvokeタグ内でネストさせて使用します。

パートの値の指定方法は、RPCスタイルとドキュメント・スタイルのうち、どちらのWebサービスを使用しているかに応じて異なります。RPCスタイルの場合は、value属性を使用する必要があります。ドキュメント・スタイルの場合は、タグ・ボディにXMLリクエスト要素を使用して値を渡す方法があります。


注意

タグ・ボディとvalue属性の両方を使用すると、タグ・ボディは無視されます。 


構文

<ws:part name = "part_name"
       [ value = "part_value" ] >

...optional body, with request element, for document-style...

</ws:part>
属性

Webサービス・タグの例

この項では、Webサービス・タグ・ライブラリで使用するテンプレート、RPCスタイルWebサービスを起動するサンプルJSPページ、およびドキュメント・スタイルWebサービスを起動するサンプル・ページを示します。

Webサービスの例: テンプレートの使用方法

<HTML>
<HEAD>
<TITLE>Title</TITLE>
</HEAD>
<BODY>
<H2>This is sample HTML text.</H2>
<%@ taglib uri="http://xmlns.oracle.com/j2ee/jsp/tld/ojsp/wstaglibrary.tld"
           prefix="ws" %>
<ws:webservice id="myws" 
               wsdlUrl="wsdlurl" 
               {
                  binding="" soapLocation="" | service="" port=""
               }
               {
                  scope="page | request | session | application"
               }
                >
   <ws:property name="property" value="string"/>

   <ws:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
           localname="SOAPStruct"
           namespaceUri="http://soapinterop.org/xsd"
           javaType="MySoapStructBean"
           java2xmlClassName="org.apache.soap.encoding.soapenc.BeanSerializer"
           xml2javaClassName="org.apache.soap.encoding.soapenc.BeanSerializer"
    />

</ws:webservice>

<ws:invoke id="result" webservice="myws" operation="add" inputMsgName=""
           outputMsgName=""> 
   <ws:part name="part_name" value="{string | <%= expression %>}"/>
</ws:invoke>

<% =result %>
</BODY>
</HTML>

Webサービスの例: RPCスタイルWebサービスのサンプルJSPページ

<%@ page contentType="text/html"%>
<%@ taglib uri="http://xmlns.oracle.com/j2ee/jsp/tld/ojsp/wstaglib.tld"
           prefix="ws" %>
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; ">
</HEAD>
<BODY>
<%
 String itemID = request.getParameter("itemID");
%>
<ws:webservice id="ebay" 
    wsdlUrl="http://www.xmethods.net/sd/2001/EBayWatcherService.wsdl"
    binding="eBayWatcherBinding"
    soapLocation="http://services.xmethods.net:80/soap/servlet/rpcrouter"
    scope="page">
  <ws:property name="http.proxyHost" value="www-proxy.us.oracle.com"/>
  <ws:property name="http.proxyPort" value="80"/>
</ws:webservice>
<ws:invoke id="price" webservice="ebay" operation="getCurrentPrice">
  <ws:part name="auction_id" value="<%=itemID%>"/>
</ws:invoke>
<B>
Action price for eBay Item # <%=itemID%> is :
</B>
<P>
$<%= price%> 
@ 
<%= new java.util.Date()%>
</P>
</BODY>
</HTML>

Webサービスの例: ドキュメント・スタイルWebサービスのサンプルJSPページ

<%@ page contentType="text/xml;"%>
<%@ page  import= oracle.xml.parser.v2.XMLElement;"%>
<%@ taglib uri="http://xmlns.oracle.com/j2ee/jsp/tld/ojsp/wstaglib.tld"
           prefix="ws" %>
<%@ taglib uri="http://xmlns.oracle.com/j2ee/jsp/tld/ojsp/xml.tld"
           prefix="xml" %>

<ws:webservice id="bookService" 
        wsdlUrl="http://hosting.msugs.ch/cheeso9/books/books.asmx?WSDL"
        binding="LookyBookServiceSoap"
        soapLocation ="http://hosting.msugs.ch/cheeso9/books/books.asmx"
        scope="session">
</ws:webservice>

<ws:invoke id="bookResult"
        operation="GetInfo"
        webservice="bookService">
    <ws:part name="parameters">
        <GetInfo xmlns="http://dinoch.dyndns.org/webservices/">
          <ISBN>SomeISBNNumber</ISBN>
        </GetInfo>
    </ws:part>
</ws:invoke>
<% 
    XMLNode resultNode = (XMLNode) bookResult;
    resultNode.Error! Bookmark not defined.(new java.io.PrintWriter(out));
%>
</BODY>
</HTML>

戻る 次へ
Oracle
Copyright © 2002, 2006 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引