次のいずれかを行います。
このタグは、次のような処理を行います。
このタグでは、次の方法でメソッドにパラメータを渡すことができます。
cfinvokeargument タグを使用します。
argumentCollection 属性で構造体として渡します。
シンタックス 1
<!--- このシンタックスは、コンポーネントのメソッドを呼び出します。 --->
<cfinvoke
component = "component name or reference"
method = "method name"
returnVariable = "variable name"
argumentCollection = "argument collection"
...>OR
シンタックス 2
<!--- このシンタックスは、コンポーネントのメソッドをそのコンポーネント内からのみ
呼び出す場合に使用します。 --->
<cfinvoke
method = "method name"
returnVariable = "variable name"
argumentCollection = "argument collection"
...
>OR
シンタックス 3
<!--- このシンタックスは、Web サービスを呼び出します。 --->
<cfinvoke
webservice = "URLtoWSDL_location"
method = "operation_name"
username = user name"
password = "password"
timeout = "request timeout in seconds" proxyServer = "WSDL proxy server URL proxyPort = "port on proxy server" proxyUser = "user id for proxy server" proxyPassword = "password for proxy server" servicePort = "WSDL port name" inputParam1 = "value1"
inputParam2 = "value2"
...
returnVariable = "var_name"
...>OR
シンタックス 4A
<!--- このシンタックスは、コンポーネントを呼び出します。
このシンタックスでは、cfobject タグを使ったインスタンス化を示します。
この cfinvoke のシンタックスは、cfobject タグでコンポーネントをインスタンス化する場合、および CreateObject 関数でコンポーネントをインスタンス化する場合に適用されます。 --->
<cfobject
component = "component name"
name = "mystringname for instantiated object">
<cfinvoke
<!--- シャープ記号で囲んだオブジェクト名に注目 --->
component = "#mystringname for instantiated component#"
method = "method name"
returnVariable = "variable name"
argumentCollection = "argument collection"
...
>ORシンタックス 4B <!--- このシンタックスは、Web サービスを呼び出します。
このシンタックスでは、cfobject タグを使ったインスタンス化を示します。
この cfinvoke のシンタックスは、cfobject タグで Web サービスをインスタンス化する場合、および CreateObject 関数で Web サービスをインスタンス化する場合に適用されます。 --->
<cfobject
webservice = "web service name"
name = "mystringname for instantiated object"
method = "operation_name">
<cfinvoke
<!--- シャープ記号で囲んだオブジェクト名に注目 --->
webservice = "#my stringname for instantiated web service#" timeout = "request timeout in seconds" proxyServer = "WSDL proxy server url proxyPort = "numeric port on proxy server" proxyUser = "string user id for proxy server" servicePort = "WSDL port name" proxyPassword = "string user password for proxy server" >
cfargument、cfcomponent、cffunction、cfinvokeargument、cfobject、cfproperty、cfreturn
ColdFusion MX 7: servicePort 属性が追加されました。
ColdFusion MX 6.1: timeout、proxyServer、proxyPort、proxyUser、および proxyPassword の各属性が追加されました。
ColdFusion MX: このタグが追加されました。
| 属性 |
必須/ オプション |
デフォルト | 説明 |
|---|---|---|---|
|
component |
「使用方法」を参照 |
|
文字列またはコンポーネントオブジェクトです。コンポーネントのリファレンス、またはインスタンス化するコンポーネントを指定します。 |
|
method |
「使用方法」を参照 |
|
メソッドの名前です。Web サービスの場合は、オペレーションの名前です。 |
|
returnVariable |
オプション |
|
呼び出しの結果を表す変数の名前です。 |
|
argumentCollection |
オプション |
|
構造体の名前です。メソッドに渡す引数の連想配列です。 |
|
username |
オプション |
|
[Administrator] - [Web サービス] で指定されたユーザー名を上書きします。 |
|
password |
オプション |
|
[Administrator] - [Web サービス] で指定されたパスワードを上書きします。 |
|
webservice |
必須 |
|
Web サービスを提供する WSDL ファイルの URL です。 |
|
timeout |
オプション |
|
Web サービスリクエストのタイムアウトです (単位 : 秒)。 |
|
proxyServer |
オプション |
存在する場合には、http.proxyHost システムプロパティ |
webservice の URL にアクセスするために必要なプロキシサーバーです。 |
|
proxyPort |
オプション |
存在する場合には、http.proxyPort システムプロパティ |
プロキシサーバー上で使用するポートです。 |
|
proxyUser |
オプション |
存在する場合には、http.proxyUser システムプロパティ |
プロキシサーバーに送信するユーザー ID です。 |
|
proxyPassword |
オプション |
存在する場合には、http.proxyPassword システムプロパティ |
プロキシサーバー上で使用するユーザーのパスワードです。 |
|
servicePort |
オプション |
WSDL の最初に検出されたポート |
Web サービスのポート名です。この値は、
Web サービスに複数のポートが含まれている場合、この属性を指定します。 |
|
input_params ... |
|
|
入力パラメータです。名前付き入力パラメータごとに paramName=paramValue を指定します。 |
メモ: プロキシ属性を指定せず、対応するシステムプロパティが設定された場合 (通常は JVM スタートアップ引数)、そのシステムプロパティ値が使用されます。
どのシンタックスでどの属性が使用できるかを次の表にまとめます。
| 各属性の指定要件 (必須、オプション、無視、または無効) : | cfinvoke タグのシンタックス : | ||||
|---|---|---|---|---|---|
| シンタックス 1 | シンタックス 2 | シンタックス 3 | シンタックス 4A | シンタックス 4B | |
|
component |
必須 |
オプション |
無効 |
必須 |
無効 |
|
method |
必須 |
必須 |
必須 |
必須 |
必須 |
|
returnVariable |
オプション |
オプション |
オプション |
オプション |
オプション |
|
argumentCollection |
オプション |
オプション |
オプション |
オプション |
オプション |
|
username |
無視 |
無視 |
オプション |
無視 |
オプション |
|
password |
無視 |
無視 |
オプション |
無視 |
オプション |
|
webservice |
無視 |
無視 |
必須 |
無視 |
必須 |
|
timeout |
無効 |
無効 |
オプション |
無効 |
オプション |
|
proxyServer |
無効 |
無効 |
オプション |
無効 |
オプション |
|
proxyPort |
無効 |
無効 |
オプション |
無効 |
オプション |
|
proxyUser |
無効 |
無効 |
オプション |
無効 |
オプション |
|
proxyPassword |
無効 |
無効 |
オプション |
無効 |
オプション |
|
servicePort |
無効 |
無効 |
オプション |
無効 |
オプション |
|
input_params ... |
オプション |
オプション |
オプション |
オプション |
オプション |
component 属性でコンポーネント名を指定した場合は、対応する名前を持つコンポーネントのインスタンスが作成され、リクエストされたメソッドが呼び出されます。その後すぐ、そのコンポーネントのインスタンスは廃棄されます。インスタンス化されているコンポーネントオブジェクトへのリファレンスをこの属性に指定した場合は、コンポーネントのインスタンス作成や廃棄は行われません。
UNIX システムでは、まず指定のコンポーネント名と同じ名前 (ただしすべて小文字) のファイルが検索されます。該当するファイルがない場合は、大文字と小文字もまったく同じ名前のファイルが検索されます。
メソッド引数は次のどの方法でも渡すことができます。同じ名前の引数が複数の方法で渡された場合は、次に示すとおりの優先順序が適用されます。
cfinvokeargument タグを使用します。
cfinvoke タグの属性として直接渡します。このとき、cfinvoke タグの登録済み属性と同じ名前 (method、component、webservice、returnVariable) を使用することはできません。
argumentCollection 属性を使用して、構造体キーとして渡します。
たとえば、params 構造体に a=1、b=1、c=1 という 3 つのキーが含まれているとします。次の呼び出しは、引数が a=3、b=2、c=1 という順序でメソッドに渡された場合と同様に評価されます。
<cfinvoke ... a=2 b=2 argumentCollection=params>
<cfinvokeargument name="a" value="3">
</cfinvoke>
メモ: cfinvoke タグでは、次の属性名は予約されています。これらの名前は、引数名としては使用できません。component、method、argumentCollection、および result。
この例では、シンタックス 1 を使用しています。
<!--- すぐにインスタンスを作成して廃棄します。 --->
<cfinvoke
component="nasdaq.quote"
method="getLastTradePrice"
returnVariable="res">
<cfinvokeargument
name="symbol"
value="macr">
</cfinvoke>
<cfoutput>#res#</cfoutput>
この例では、シンタックス 1 を使用しています。
<!--- argumentCollection を使用して引数を渡します。 ---> <cfset args = StructNew()> <cfset args.symbol = "macr"> <cfinvoke component="nasdaq.quote" method="getLastTradePrice" argumentCollection="#args#" returnVariable="res"> <cfoutput>#res#</cfoutput>
この例では、シンタックス 2 を使用しています。
<!--- MyComponent コンポーネント内からのみ呼び出しを行います。---> <cfinvoke method = "a method name of MyComponent" returnVariable = "variable name">
この例では、シンタックス 3 を使用しています。
<!--- cfinvoke で ColdFusion コンポーネントを使用して Web サービスを利用します。--->
<cfinvoke
webservice="http://www.xmethods.net/sd/2001/TemperatureService.wsdl"
method="getTemp"
returnvariable="aTemp">
<cfinvokeargument name="zipcode" value="55987"/>
</cfinvoke>
<cfoutput>The temperature at zip code 55987 is #aTemp#</cfoutput>
Web サービスの詳細については、『ColdFusion MX 開発ガイド』のWeb サービスの使用を参照してください。
この例では、シンタックス 4A を使用しています。
<!--- インスタンス作成とメソッド呼び出しを別々に行います。 さまざまなメソッドや値を使用して何度も呼び出しを行う場合に便利です。 ---> <cfobject name="quoteService" component="nasdaq.quote"> <cfinvoke component="#quoteService#" method="getLastTradePrice" symbol="macr" returnVariable="res_macr"> <cfoutput>#res#</cfoutput> <cfinvoke component="#quoteService#" method="getLastTradePrice" symbol="mot" returnVariable="res_mot"> <cfoutput>#res#</cfoutput>
ColdFusion MX 7 | ColdFusion MX 6.1 | ColdFusion MX* | ColdFusion 5* | フォーラム* | デベロッパーセンター | サポート情報 | バグ報告
バージョン7