説明
次のいずれかを行います。
- ColdFusion ページまたは ColdFusion コンポーネント内からコンポーネントメソッドを呼び出します。
- Web サービスを呼び出します。
このタグは、次のような処理を行います。 - 一時的にコンポーネントまたは Web サービスのインスタンスを作成し、そのメソッドを呼び出します。
- インスタンス化されているコンポーネントまたは Web サービスのメソッドを呼び出します。
このタグでは、次の方法でメソッドにパラメーターを渡すことができます。 - cfinvokeargument タグを使用します。
- 1 つのパラメーターにつき 1 つの属性を、名前付き属性と値のペアとして渡します。
- argumentCollection 属性で構造体として渡します。
カテゴリ
シンタックス
<!--- Syntax 1: This syntax invokes a method of a component. Improve this example ---> <cfinvoke component = "component name or reference" method = "method name" returnVariable = "variable name" argumentCollection = "argument collection" ...> OR <!--- Syntax 2: This syntax can invoke a method of a component only from within the component. ---> <cfinvoke method = "method name" returnVariable = "variable name" argumentCollection = "argument collection" ...> OR <!--- Syntax 3: This syntax invokes a web service. ---> <cfinvoke webservice = "Web service name or WSDL URL" method = "operation name" password = "password" proxyPassword = "password for proxy server" proxyPort = "port on proxy server" proxyServer = "WSDL proxy server URL" proxyUser = "user ID for proxy server" returnVariable = "variable name" refreshWSDL = "yes|no" servicePort = "WSDL port name" timeout = "request timeout in seconds" username = "user name" wsdl2javaArgs = "argument string"> OR <!--- Syntax 4A: This syntax invokes a component. This syntax shows instantiation with the cfobject tag. This cfinvoke syntax applies to instantiating a component with the cfobject tag and to instantiating a component with the CreateObject function. ---> <cfobject component = "component name" name = "name for instantiated component"> <cfinvoke <!--- Value is object name, within number signs. ---> component = "#name of instantiated component#" method = "method name" returnVariable = "variable name" argumentCollection = "argument collection" ...> OR <!--- Syntax 4B: This syntax invokes a web service. This syntax shows instantiation with the cfobject tag. This cfinvoke syntax applies to instantiating a web service with the cfobject tag and to instantiating a web service with the CreateObject function. ---> <cfobject webservice = "web service name or WSDL URL" name = "name for instantiated object" (optional cfobject attibutes)> <cfinvoke webservice = "#cfobject name attribute value#" method = "method name" password = "password" proxyPassword = "password for proxy server" proxyPort = "port on proxy server" proxyServer = "name or IP address of WSDL proxy server" proxyUser = "user ID for proxy server" returnVariable = "variable name" refreshWSDL = "yes|no" servicePort = "WSDL port name" timeout = "request time-out in seconds" username = "user name" wsdl2javaArgs = "argument string"> Or <cfinvoke authType="NTLM" webservice="Web service name or WSDL URL" ntlmdomain="domain name" workstation="workstation name" method="operation name" password="password" proxyPassword="password for proxy server" proxyPort="port on proxy server" proxyServer="WSDL proxy server URL" proxyUser="user ID for proxy server" returnVariable="variable name" refreshWSDL=""yes|no" servicePort="WSDL port name" timeout="request timeout in seconds" username="username" wsdl2javaargs="argument string">
このタグの属性は attributeCollection 属性で指定でき、その値は構造体になります。attributeCollection 属性で構造体の名前を指定し、タグの属性名を構造体のキーとして使用します。
関連項目
履歴
Adobe ColdFusion(2016 リリース):authType、workstation および ntlmDomain 属性が追加されました。
ColdFusion 10:wsVersion 属性が追加されました。
ColdFusion 8:refreshWSDL 属性と wsdl2javaArgs 属性が追加されました。
ColdFusion MX 7:servicePort 属性が追加されました。
ColdFusion MX 6.1:timeout、proxyServer、proxyPort、proxyUser および proxyPassword の各属性が追加されました。
ColdFusion MX: このタグが追加されました。
属性
属性 |
必須/オプション |
デフォルト |
説明 |
---|---|---|---|
argumentCollection |
オプション |
|
構造体の名前です。 メソッドに渡す引数の連想配列 です。 |
authType |
オプション |
|
使用する認証のタイプです。値は、NTLM および BASIC です。 |
component |
「使用方法」を参照 |
|
文字列またはコンポーネントオブジェクトです。コンポーネントへの参照、またはインスタンス化するコンポーネントを指定します。 |
input_params ... |
|
|
入力パラメーターです。名前付き入力パラメーターごとに paramName=paramValue を指定します。 |
method |
「使用方法」を参照 |
|
メソッドの名前です。Web サービスの場合は、オペレーションの名前です。 |
ntlmDomain |
authType=NTLM の場合必須 |
|
ユーザーが登録されるドメイン。 注意:ユーザーがドメインに属している場合は、ntlmDomain 属性が必須です。ユーザーがドメインに属していない場合、ntlmDomain 属性はオプションです。 |
password |
オプション |
Administrator で設定された パスワード (存在する場合) |
Web サービスにアクセスするためのパスワードです。Administrator で設定された Web サービス名が webservice 属性で指定されている場合は、Administrator のエントリで指定されたユーザー名ではなく、ここで指定された ユーザー名が 使用されます。 |
proxyPassword |
オプション |
存在する場合には、http.proxyPassword システムプロパティ |
プロキシサーバー上で使用するユーザーのパスワードです。 |
proxyPort |
オプション |
存在する場合には、http.proxyPort システムプロパティ |
プロキシサーバー上で使用するポートです。 |
proxyServer |
オプション |
存在する場合には、http.proxyHost システムプロパティ |
webservice の URL に アクセスするために必要な プロキシサーバーです。 |
proxyUser |
オプション |
存在する場合には、http.proxyUser システムプロパティ |
プロキシサーバーに送信するユーザー ID です。 |
refreshWSDL |
オプション |
no |
|
returnVariable |
オプション |
|
呼び出しの結果を表す変数の名前です。 |
servicePort |
オプション |
WSDL で最初に見つかったポート |
Web サービスのポート名です。この値では大文字と小文字が区別され、service 要素内の port 要素の name 属性に対応します。Web サービスに複数のポートが含まれている場合にこの属性を指定します。 |
timeout |
オプション |
0 (タイムアウトなし) |
Web サービスリクエストのタイムアウトです (単位 : 秒)。 |
username |
オプション |
Administrator で 設定 された ユーザー名(存在する場合) |
Web サービスにアクセスするためのユーザー名です。Administrator で設定された Web サービス名が webservice 属性で指定されている場合は、Administrator のエントリで指定されたユーザー名ではなく、ここで指定された ユーザー名が 使用されます。 |
webservice |
「使用方法」を参照 |
|
次のいずれかです。
|
workstation |
オプション |
|
クライアントマシンのホスト名。 |
wsdl2javaArgs |
「使用方法」を参照 |
|
WSDL2Java ツールに渡す引数のスペース区切りリストを含む文字列です。WSDL2Java ツールは Web サービス用の Java スタブを生成するためのツールです。使用可能な引数は次のとおりです。
|
wsVersion |
オプション |
|
使用する軸のバージョンを指定します。wsversion を 1 に 指定した場合は、軸 1 が使用されます。2 にした場合は、軸 2 が使用されます。 |
プロキシサーバーの属性を指定せず、対応するシステムプロパティが設定された場合 (通常は JVM スタートアップ引数)、そのシステムプロパティ値が使用されます。
使用方法
どのシンタックスでどの属性が使用できるかを次の表にまとめます。
各属性の指定要件 (必須、オプション、無視、または無効): |
cfinvoke タグのシンタックス : |
||||
---|---|---|---|---|---|
シンタックス 1 |
シンタックス 2 |
シンタックス 3 |
シンタックス 4A |
シンタックス 4B |
|
argumentCollection |
オプション |
オプション |
オプション |
オプション |
オプション |
component |
必須 |
オプション |
無効 |
必須 |
無効 |
input_params ... |
オプション |
オプション |
オプション |
オプション |
オプション |
method |
必須 |
必須 |
必須 |
必須 |
必須 |
password |
無視 |
無視 |
オプション |
無視 |
オプション |
proxyPassword |
無効 |
無効 |
オプション |
無効 |
オプション |
proxyPort |
無効 |
無効 |
オプション |
無効 |
オプション |
proxyServer |
無効 |
無効 |
オプション |
無効 |
オプション |
proxyUser |
無効 |
無効 |
オプション |
無効 |
オプション |
returnVariable |
オプション |
オプション |
オプション |
オプション |
オプション |
servicePort |
無効 |
無効 |
オプション |
無効 |
オプション |
timeout |
無効 |
無効 |
オプション |
無効 |
オプション |
username |
無視 |
無視 |
オプション |
無視 |
オプション |
webservice |
無効 |
無効 |
必須 |
無効 |
必須 |
wsdl2javaArgs |
無効 |
無効 |
オプション |
無効 |
オプション |
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
この例では、シンタックス 1 を使用しています。
<!--- Immediate instantiation and destruction. ---> <cfinvoke component="nasdaq.quote" method="getLastTradePrice" returnVariable="res"> <cfinvokeargument name="symbol" value="macr"> </cfinvoke> <cfoutput>#res#</cfoutput>
例 2
この例では、シンタックス 1 を使用しています。
<!--- Passing the arguments using argumentCollection. ---> <cfset args = StructNew()> <cfset args.symbol = "macr"> <cfinvoke component="nasdaq.quote" method="getLastTradePrice" argumentCollection="#args#" returnVariable="res"> <cfoutput>#res#</cfoutput>
例 3
この例では、シンタックス 2 を使用しています。
<!--- Called only from within a component, MyComponent. ---> <cfinvoke method = "a method name of MyComponent" returnVariable = "variable name">
例 4
この例では、シンタックス 3 を使用しています。
<!--- Using cfinvoke to consume a web service using a ColdFusion component. ---> <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 アプリケーションの開発』の「Web サービスの使用」を参照してください。
例 5
この例では、シンタックス 4A を使用しています。
<!--- Separate instantiation and method invocation; useful for multiple invocations using different methods or values. ---> <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>