Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

SoapAction

このメソッドを HTTP 経由の Web メソッドとして呼び出す場合に HTTP ヘッダで使用する SOAP アクションを指定します。Web サービスまたは Web クライアントとして定義されているクラス内でのみ適用されます。

使用法

このメソッドを Web メソッドとして使用する場合に HTTP ヘッダで使用する SOAP アクションを指定するには、以下の構文を使用します。

Method name(formal_spec) As returnclass [ WebMethod, SoapAction = soapaction ]
{
   //implementation
}

soapaction は以下のいずれかになります。

  • "[ default ]" — Caché は、SOAP アクションの既定値である NAMESPACE/Package.Class.Method を使用します。

  • "customValue" — Caché は SOAP アクションとして customValue を使用します。値は、SOAP 要求の目的を示す URI である必要があります。

    カスタム値を指定する場合は、それが Web サービス内の各 Web メソッド内で一意であるか、Web メソッドごとに SoapRequestMessage キーワードを指定する (また、そのキーワードのために一意の値を使用する) 必要があります。

  • "" — Caché は SOAP アクションとして空の値を使用します。これは一般的なケースではありません。

詳細

Web メソッドの SOAP アクションは、通常、SOAP 要求メッセージの転送に使用されます。例えば、ファイアウォールは、SOAP 要求メッセージを適切にフィルタ処理するためにこれを使用できます。Caché Web サービスは、SOAP アクションをそのメッセージ自体と組み合わせて使用して、要求メッセージの処理方法を決定します。

このキーワードにより、このメソッドを Web メソッドとして呼び出す場合に使用する HTTP SOAP アクションを指定できます。SOAP 1.1 の場合、SOAP アクションは、SOAPAction HTTP ヘッダとして含まれます。SOAP 1.2 の場合は、Content-Type HTTP ヘッダ内に含まれます。

既定値

SoapAction キーワードを省略すると、SOAP アクションは以下のような形式になります。

NAMESPACE/Package.Class.Method

NAMESPACE は Web サービスの NAMESPACE パラメータの値、Package.Class は Web サービス・クラスの名前、Method は Web メソッドの名前です。

WSDL との関係

SoapAction キーワードは、Web サービスの WSDL の <binding> セクションに影響します。例えば、以下の Web メソッドを考えてみます。

Method Add(a as %Numeric,b as %Numeric) As %Numeric [ SoapAction = MySoapAction,WebMethod ]
{
    Quit a + b
}

この Web サービスでは、WSDL の <binding> セクションは次のようになります。

<binding name="MyServiceNameSoap" type="s0:MyServiceNameSoap">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
    <operation name="Add">
        <soap:operation soapAction="MySoapAction" style="document"/>
        <input>
            <soap:body use="literal"/>
        </input>
        <output>
            <soap:body use="literal"/>
        </output>
    </operation>
</binding>

既定では、メソッドで SoapAction キーワードを指定しないと、<soap:operation> 要素が次のようになる場合があります。

<soap:operation soapAction="http://www.mynamespace.org/ROBJDemo.BasicWS.Add" style="document"/>

SOAP ウィザードを使用して WSDL から Caché Web サービスまたはクライアントを生成する場合、その WSDL に応じてこのキーワードが設定されます。

メッセージへの影響

前述の Web メソッドでは、Web サービスは次の形式の要求メッセージを想定します (SOAP 1.1 の場合)。

POST /csp/gsop/ROBJDemo.BasicWS.cls HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; Cache;)
Host: localhost:8080
Connection: Close
Accept-Encoding: gzip
SOAPAction: MySoapAction
Content-Length: 379
Content-Type: text/xml; charset=UTF-8

<?xml version="1.0" encoding="UTF-8" ?>
<SOAP-ENV:Envelope >...

既定では、メソッドで SoapAction キーワードを指定しないと、SOAPAction の行が次のようになる場合があります。

SOAPAction: http://www.mynamespace.org/ROBJDemo.BasicWS.Add

SOAP 1.2 では、細部が多少異なります。この場合、Web サービスは次の形式の要求メッセージを想定します。

POST /csp/gsop/ROBJDemo.BasicWS.cls HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; Cache;)
Host: localhost:8080
Connection: Close
Accept-Encoding: gzip
Content-Length: 377
Content-Type: application/soap+xml; charset=UTF-8; action="MySoapAction"

<?xml version="1.0" encoding="UTF-8" ?>
<SOAP-ENV:Envelope >...

関連項目

FeedbackOpens in a new tab