CFOBJECT allows you to create and use JAVA objects, and by extension EJB objects.
This support is currently only for NT, but will be extended to Solaris in the next release.
<CFOBJECT ACTION="Create" TYPE="Java" CLASS="Java class" NAME="object name" >
Required. Specifies "Create" in order to create the Java object or the WebLogic Environment.
Required. Specifies that the type of object, in this case, this is always "Java."
Required. Specifies the Java class.
Required. The name used within CFML to access the object.
To be able to call Java CFXs or Java objects, ColdFusion uses a JVM embedded in the process. The loading, location and the settings for the JVM are configurable using the ColdFusion Administrator pages.
Any Java class available in the class path specified in the ColdFusion Administrator can be loaded and used from ColdFusion using the CFOBJECT tag.
Use the following steps to access Java methods and fields:
1. Call CFOBJECT to load the class. See Example.
2. Use the init method with appropriate arguments to call a constructor explicitly. For example:
<CFSET ret = myObj.init(arg1, arg2)>
Calling a public method on the object without first calling the "init" method results in an implicit call to the default constructor. Arguments and return values can be any valid Java type (simple, arrays, objects). ColdFusion does the appropriate conversions when strings are passed as arguments, but not when they are received as return values.
Overloaded methods are supported as long as the number of arguments are different. Future enhancements will let you use cast functions that will allow method signatures to be built more accurately.
To create and call all the appropriate EJB objects, use CFOBJECT. The sequence in the second example assumes that the Weblogic JNDI is used to register and find EJBHome instances.
<!---------------------------------------------------------------------- This CFOBJECT call loads the class MyClass but does not create an instance object. Static methods and fields are accessible after a call to CFOBJECT. -----------------------------------------------------------------------> <CFOBJECT ACTION="CREATE" TYPE="Java" CLASS="myClass" NAME="myObj" >
<!------------------------------------------------------------- The CFOBJECT tag creates the Weblogic Environment object, which is then used to get the InitialContext. The context object is used to look up the EJBHome interface. The call to create() results in getting an instance of stateless session EJB. -----------------------------------------------------------------------> <CFOBJECT ACTION="CREATE" TYPE="JAVA" CLASS="weblogic/jndi/Environment" NAME="wlEnv"> <CFSET ctx = wlEnv.getInitialContext()> <CFSET ejbHome = ctx.lookup("statelessSession.TraderHome")> <CFSET trader = ejbHome.Create()> <CFSET value = trader.shareValue(20, 55.45)> <CFOUTPUT> Share value = #value# </CFOUTPUT> <CFSET value = trader.remove()>