This is a continuation of this question: WCF and ColdFusion
So I managed to get the JAR to work with Metro and import the WSDL. My main class has the following functions: getVersion()and my implementation myVersion(), cancelOrder()and myCancel(), and, finally placeOrderand myOrder().

I can convey the right information and get a response from the first two methods of Web services ( getVersionand cancelOrder):
For example, in a method, myVersionit calls a web service and displays the version number plus the passed string:
<cfset var.myVersion = createObject("java", "com.USOrlando").myVersion(
javaCast("string", "Batman")
)>
Using the same template, I can also pass all other parameters in the method myOrder, with the exception of the last type parameter org.tempuri.ArrayOfSmartOrderLineRequest.
Here I am not sure and may need guidance:
, , .
myOrder , ColdFusion, request.
<cfset var.01_00_myOrder = createObject("java", "com.USOrlando").myOrder(
JavaCast("String", ExternalOrderId),
JavaCast("int", CustomerID),
.
.
.
JavaCast("String", Phone),
JavaCast("String", Email),
JavaCast("org.tempuri.ArrayOfSmartOrderLineRequest", orderItems)
)>
, JavaCast("org.tempuri.ArrayOfSmartOrderLineRequest", orderItems) - .
JavaCast org.tempuri.ArrayOfSmartOrderLineRequest : byte, char, short, int, long, float, double, boolean, string, bigdecimal, (: int []) null.
. null, SoapMessage .
: ?
orderItems - CF, , , Java.
<cfset myItem = createObject("java", "org.tempuri.SmartOrderLineRequest")>
<cfset myItem.PluSalesProgramId = myItem.setPLU(1)>
<cfset myItem.PLU = myItem.setPLU("123456")>
<cfset myItem.Quantity = myItem.setPLU(1)>
<cfset orderItems = createObject("java", "org.tempuri.ArrayOfSmartOrderLineRequest").getSmartOrderLineRequest().add(myItem)>
, ArrayOfSmartOrderLineRequest.java getSmartOrderLineRequest. java:
, . , JAXB. set smartOrderLineRequest. to: , , : getSmartOrderLineRequest().add(newItem);
, newItem add getSmartOrderLineRequest, ? , newItem, myItem, : PLU, PluSalesProgramId Quantity.
myItem CF, Java, getSmartOrderLineRequest ", ADD myItem ."
. , , , .
1: .
, , . , : :
<cfset myItem = createObject("java", "org.tempuri.SmartOrderLineRequest")>
<cfset myItem.PluSalesProgramId = myItem.PluSalesProgramId(JavaCast("int", "1"))>
<cfset myItem.PLU = myItem.setPLU(JavaCast("string", "123456"))>
<cfset myItem.Quantity = myItem.setPLU(JavaCast("int", "1"))>
<cfset orderItems = createObject("java", "org.tempuri.ArrayOfSmartOrderLineRequest").getSmartOrderLineRequest().add(myItem)>
, :
<cfset myItem = createObject("java", "org.tempuri.SmartOrderLineRequest")>
<cfset myItem.PLU = myItem.setPLU(JavaCast("string", "123456"))>
<cfset orderItems = createObject("java", "org.tempuri.ArrayOfSmartOrderLineRequest").getSmartOrderLineRequest().add(myItem)>
, :
<cfset var.01_00_myOrder = createObject("java", "com.USOrlando").myOrder(
JavaCast("String", ExternalOrderId),
JavaCast("int", CustomerID),
.
.
.
JavaCast("String", Phone),
JavaCast("String", Email),
orderItems
)>
ArrayOfSmartOrderLineRequest.java:
public class ArrayOfSmartOrderLineRequest {
@XmlElement(name = "SmartOrderLineRequest", nillable = true)
protected List<SmartOrderLineRequest> smartOrderLineRequest;
public List<SmartOrderLineRequest> getSmartOrderLineRequest() {
if (smartOrderLineRequest == null) {
smartOrderLineRequest = new ArrayList<SmartOrderLineRequest>();
}
return this.smartOrderLineRequest;
}
}
WSDL:
<xs:complexType name="ArrayOfSmartOrderLineRequest">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="SmartOrderLineRequest" nillable="true" type="tns:SmartOrderLineRequest"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="SmartOrderLineRequest">
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="PluSalesProgramId" nillable="true" type="xs:int"/>
<xs:element minOccurs="0" maxOccurs="1" name="PLU" type="xs:string"/>
<xs:element minOccurs="1" maxOccurs="1" name="Quantity" type="xs:int"/>
</xs:sequence>
</xs:complexType>
2: Leigh
Psuedo-Code , .
1) , .
<cfset myItem = createObject("java", "org.tempuri.SmartOrderLineRequest")>
cfdump myItem :

PluSalesProgramId, PLU, Quantity.
2) .
<cfset myItem.setPluSalesProgramId(JavaCast("int", "1"))>
<cfset myItem.setPLU(JavaCast("string", "123456"))>
<cfset myItem.setQuantity(JavaCast("int", "1"))>
. *
3) CF.
<cfset itemArray = newArray(1)>
<cfset arrayAppend(itemArray, myItem)>
itemArray : 
.
4) myItem ArrayOfSmartOrderLineRequest.
<cfset orderItems = createObject("java", "org.tempuri.ArrayOfSmartOrderLineRequest")>
<cfset orderItems.getSmartOrderLineRequest().add(myItem)>
5) , orderItems myOrder:
<cfset var.01_00_myOrder = createObject("java", "com.USOrlando").myOrder(
JavaCast("String", ExternalOrderId),
JavaCast("int", CustomerID),
.
.
.
JavaCast("String", Phone),
JavaCast("String", Email),
orderItems
)>
! ! , , , , , SOAP PLU .
, - , , .