cfinvoke

Description

Does either of the following:

Categories

Related

History

ColdFusion 8: Added the following attributes: refreshWSDL, wsdl2javaArgs attributes. ColdFusion MX 7: Added the servicePort attribute. ColdFusion MX 6.1: Added the following attributes: timeout, proxyServer, proxyPort, proxyUser, and proxyPassword. ColdFusion MX: Added this tag.

Syntax

<!--- Syntax 1: This syntax invokes a method of a component. ---> 
<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">
Note: You can specify this tag’s attributes in an attributeCollection attribute whose value is a structure. Specify the structure name in the attributeCollection attribute and use the tag’s attribute names as structure keys.

Attributes

AttributeDescriptionRequiredDefault
argumentCollectionName of a structure; associative array of arguments to pass to the method.Optional
componentString or component object; a reference to a component, or component to instantiate.See Usage.
input_params ...Input parameters. For each named input parameter specify paramName=paramValue. 
methodName of a method. For a web service, the name of an operation.See Usage.
passwordThe password to use to access the web service. If the webservice attribute specifies a web service name configured in the Administrator, overrides any user name specified in the Administrator entry.OptionalPassword set in the Administrator, if any
proxyPasswordThe user’s password on the proxy server.Optionalhttp.proxyPassword system property, if any
proxyPortThe port to use on the proxy server.Optionalhttp.proxyPort system property, if any.
proxyServerThe proxy server required to access the webservice URL.Optionalhttp.proxyHost system property, if any.
proxyUserThe user ID to send to the proxy server.Optionalhttp.proxyUser system property, if any
refreshWSDLyes: reload the WSDL file and regenerate the artifacts used to consume the web service noOptionalno
returnVariableName of a variable for the invocation result.Optional
servicePortThe port name for the web service. This value is case sensitive and corresponds to the port element’s name attribute under the service element. Specify this attribute if the web service contains multiple ports.OptionalFirst port found in the WSDL
timeoutThe time-out for the web service request, in seconds.Optional0 (no timeout)
usernameThe user name to use to access the web service. If the webservice attribute specifies a web service name configured in the Administrator, overrides any user name specified in the Administrator entry.OptionalUser name set in the Administrator, if any
webserviceOne of the following: The absolute URL of the web service WSDL. The Name (string) assigned in the ColdFusion Administrator to the web service.See Usage
wsdl2javaArgsA string that contains a space-delimited list of arguments to pass to the WSDL2Java tool that generates Java stubs for the web services. Useful arguments include the following: -W or --noWrapped: Turns off the special treatment of wrapped document/literal style operations. -a or --all: Generates code for all elements in the WSDL, even unreferenced ones. -w or --wrapArrays: Prefers building beans to straight arrays for wrapped XML array types. This switch is not in included in the Axis documentation. For detailed information on valid arguments, see the Apache Axis WSDL2Java Reference.See Usage

Usage

The following table shows when you can use each attribute:
This attribute is required, optional, ignored, or invalid:
For this cfinvoke tag syntax:
Syntax 1
Syntax 2
Syntax 3
Syntax 4A
Syntax 4B
argumentCollection
Optional
Optional
Optional
Optional
Optional
component
Required
Optional
Invalid
Required
Invalid
input_params ...
Optional
Optional
Optional
Optional
Optional
method
Required
Required
Required
Required
Required
password
Ignored
Ignored
Optional
Ignored
Optional
proxyPassword
Invalid
Invalid
Optional
Invalid
Optional
proxyPort
Invalid
Invalid
Optional
Invalid
Optional
proxyServer
Invalid
Invalid
Optional
Invalid
Optional
proxyUser
Invalid
Invalid
Optional
Invalid
Optional
returnVariable
Optional
Optional
Optional
Optional
Optional
servicePort
Invalid
Invalid
Optional
Invalid
Optional
timeout
Invalid
Invalid
Optional
Invalid
Optional
username
Ignored
Ignored
Optional
Ignored
Optional
webservice
Invalid
Invalid
Required
Invalid
Required
wsdl2javaArgs
Invalid
Invalid
Optional
Invalid
Optional

If the component attribute specifies a component name, the component with the corresponding name is instantiated, the requested method is invoked, and then the component instance is immediately destroyed. If the attribute contains a reference to an instantiated component object, no instantiation or destruction of the component occurs.
On UNIX systems, ColdFusion searches first for a file with a name that matches the specified component name, but is all lower case. If it does not find the file, it looks for a file name that matches the component name exactly, with the identical character casing.
Method arguments can be passed in any of the following ways. If an argument is passed in more than one way with the same name, this order of precedence applies:
Using the cfinvokeargument tag
Passing directly as attributes of the cfinvoke tag (they cannot have the same name as a registered cfinvoke attribute: method, component, webservice, returnVariable)
Passing as struct keys, using the argumentCollection attribute
For example, the params struct contains three keys: a=1, b=1, c=1. The following call is evaluated as if the arguments were passed to the method in the order a=3, b=2, c=1:
<cfinvoke ... a=2 b=2 argumentCollection=params> <cfinvokeargument name="a" value="3"> </cfinvoke> Note: The following cfinvoke tag attribute names are reserved; they cannot be used for argument names: component, method, argumentCollection, and result.