One Star

Bound to Anonymous type error.

Using wsdl2java cxf tool to generate my service and everything runs fine, and 4 of the 5 services work. But I get this runtime error when I hit the RetrieveSfAccounts operation:
Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.1.1:java (default-cli) on project sf-account-soap: An exception occured while executing the Java class. null: InvocationTargetException: Marshalling Error: Instance of "com.cn.dsa.sfaccount.InputRetrieveSfAccounts" is substituting "java.lang.Object", but "com.cn.dsa.sfaccount.InputRetrieveSfAccounts" is bound to an anonymous type. ->
In the wsdl:
<xs:complexType name="Account">
<xs:sequence>
<xs:element type="xs:string" name="id"/>
<xs:element type="xs:string" name="name"/>
<xs:element type="xs:string" name="firstName"/>
<xs:element type="xs:string" name="lastName"/>
<xs:element type="xs:string" name="workEmail"/>
</xs:sequence>
</xs:complexType>

<xs:complexType name="ArrayOfAccounts">
<xs:sequence>
<xs:element maxOccurs="unbounded"
minOccurs="0"
name="accounts"
nillable="true"
type="tns:Account"/>
</xs:sequence>
</xs:complexType>

<xs:element name="inputRetrieveSfAccounts">
<xs:complexType>
<xs:all>
<xs:element name="amount" type="xs:int"/>
</xs:all>
</xs:complexType>
</xs:element>

<xs:element maxOccurs="1" minOccurs="1" name="outputRetrieveSfAccounts" nillable="true" type="tns:ArrayOfAccounts" />

Here's the method I wrote in the Processor class (camel) handling the actual service:
/****************** GET ALL ACCOUNTS ******************/
if ("InputRetrieveSfAccounts".equals(operationName)) {

//for now just return all accounts found

try {
List<Account> acctList = accountMgr.retrieveAccounts();

ArrayOfAccounts accounts = new ArrayOfAccounts();
for(Account acct : acctList) {
accounts.getAccounts().add(acct);
}
exchange.getOut().setBody(accounts);

} catch (Exception e) {
generateFault("Can't find DFP Accounts: "+e.getMessage());

}
}

Here's the method from the Interface generated by wsdl2java:
@WebResult(name = "outputRetrieveSfAccounts", targetNamespace = "http://sfaccount.dsa.cn.com", partName = "out")
@WebMethod(operationName = "RetrieveSfAccounts", action = "http://sfaccount.dsa.cn.com/RetrieveSfAccounts")
public ArrayOfAccounts retrieveSfAccounts(
@WebParam(partName = "in", name = "inputRetrieveSfAccounts", targetNamespace = "http://sfaccount.dsa.cn.com")
InputRetrieveSfAccounts in
);