Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

SoapAction (メソッド・キーワード)

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

使用法

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

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

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

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

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

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

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

詳細

Web メソッドの SOAP アクションは、通常、SOAP 要求メッセージの転送に使用されます。例えば、ファイアウォールは、SOAP 要求メッセージを適切にフィルタ処理するためにこれを使用できます。InterSystems IRIS 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 から InterSystems IRIS Web サービスのサービスまたはクライアントを生成する場合、その WSDL に応じてこのキーワードが設定されます。

メッセージへの影響

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

POST /csp/gsop/ROBJDemo.BasicWS.cls HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; InterSystems IRIS;)
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; InterSystems IRIS;)
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