説明

次のいずれかを行います。

  • 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

  • yes:WSDL ファイルをリロードし、Web サービスを利用するために必要な生成結果を再生成します。
  • no

returnVariable

オプション

 

呼び出しの結果を表す変数の名前です。

servicePort

オプション

WSDL で最初に見つかったポート

Web サービスのポート名です。この値では大文字と小文字が区別され、service 要素内の port 要素の name 属性に対応します。Web サービスに複数のポートが含まれている場合にこの属性を指定します。

timeout

オプション

0 (タイムアウトなし)

Web サービスリクエストのタイムアウトです (単位 : 秒)。

username

オプション

Administrator で設定されたユーザー名(存在する場合)

Web サービスにアクセスするためのユーザー名です。Administrator で設定された Web サービス名がwebservice属性で指定されている場合は、Administrator のエントリで指定されたユーザー名ではなく、ここで指定されたユーザー名が使用されます。

webservice

「使用方法」を参照

 

次のいずれかです。

  • Web サービス WSDL の絶対 URL
  • ColdFusion Administrator でWeb サービスに割り当てられた名前(文字列)

workstation

オプション

 

クライアントマシンのホスト名。

wsdl2javaArgs

「使用方法」を参照

 

WSDL2Java ツールに渡す引数のスペース区切りリストを含む文字列です。WSDL2Java ツールは Web サービス用の Java スタブを生成するためのツールです。使用可能な引数は次のとおりです。

  • W または -noWrapped:wrapped document/literal スタイルオペレーションの特別な処理を無効にします。
  • a または-all:参照されないものも含め、WSDL 内の全要素のコードを生成します。
  • w または -wrapArrays:ラップされた XML 配列型に対してストレートな配列を作成するのではなく bean を作成します。このスイッチは Axis のマニュアルには記載されていません。
    有効な引数について詳しくは、『Apache Axis WSDL2Java Reference』を参照してください。

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 システムでは、まず指定のコンポーネント名と同じ名前(ただしすべて小文字)のファイルが検索されます。該当するファイルがない場合は、大文字と小文字もまったく同じ名前のファイルが検索されます。メソッド引数は次のどの方法でも渡すことができます。同じ名前の引数が複数の方法で渡された場合は、次に示すとおりの優先順序が適用されます。

  1. cfinvokeargument タグを使用します。
  2. cfinvoke タグの属性として直接渡します。このとき、cfinvoke タグの登録済み属性と同じ名前(method、component、webservice、returnVariable)を使用することはできません。
  3. 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>

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー