Calling a CORBA Object

In the CFOBJECT tag, several key attributes are required for calling CORBA objects:

See the CFML Language Reference for the complete CFOBJECT syntax.

Declaring structures and sequences

Once the object is created, attributes and operations on the object can be invoked using the syntax outlined in the above sections. In addition, ColdFusion also supports the use of complex types such as structures and sequences. For structures, use ColdFusion structures. For sequences, use ColdFusion arrays.

Example

The IDL for an object

struct SimpleStruct
{
  short s;
  long l;
  float d;
};

struct NestedStruct
{
  SimpleStruct f;
  char c;
  string s;
};

typedef sequence<long, 5> BLongSequence;

interface SomeObject {
  short SomeMethod( in NestedStruct inStruct,  in BlongSequence inSeq);

};

The applicable ColdFusion code

<!--Declare a couple of structures -
<CFSET x = StructNew()>
<CFIF IsStruct(x)>
    <CFSET temp=StructInsert(x,"s",3)>
    <CFSET temp=StructInsert(x,"l", 256)>
    <CFSET temp=StructInsert(x,"d", 93.45)>
</CFIF>

<CFSET NestedStruct = StructNew()>
<CFIF IsStruct(xx)>
    <CFSET temp=StructInsert(NestedStruct,"f",x)>
    <CFSET temp=StructInsert(NestedStruct,"c", 'b')>
    <CFSET temp=StructInsert(NestedStruct,"s", " bu-bu")>
</CFIF>

<!--Declare a sequence -
<CFSET FixedSeq = ArrayNew(1)>

<CFLOOP INDEX="LoopCount" FROM="1" TO="5">
    <CFSET FixedSeq [LoopCount] = #LoopCount#>
</CFLOOP>

<CFSET retA=obj.SomeMethod(NestedStruct, FixedSeq)>

Exception handling

Exceptions thrown by the CORBA object methods can be caught with the CFTRY and CFCATCH tags. However, no information can be extracted from the exception object in this release.