Expand my Community achievements bar.

Custom Component SOAP endpoint broken

Avatar

Level 2

Ok so I have a custom component that takes a string parameter, queries a database and then returns the result in a list format, (custom data type).

I then created a short lived process with the two variables (an input and output) configured to the component.  The remoting endpoint works fine and returns the values correctly in Flex, (very fast).  But when I tried using the web service component in flex (connecting to the SOAP endpoint of the same process.) I get a fault in Flex.  Looking at the fault, Flex complained about not understanding the SOAP response.  Now the weird thing is, if I record the process in workbench everything looks great.  It took in the parameter and brought back the query results, just like the remote object request did.

So I tried to invoke the process from a browser using the SOAP endpoint, and got the following error on the response:

<soapenv:Envelope>

<soapenv:Body>

<soapenv:Fault>

<faultcode>soapenv:Server.userException</faultcode>

<faultstring>

java.io.IOException: java.lang.IllegalArgumentException: object is not an instance of declaring class

</faultstring>

<detail>

<faultData/>

<ns1:hostname>wdadb02</ns1:hostname>

</detail>

</soapenv:Fault>

</soapenv:Body>

</soapenv:Envelope>

This is crazy to me because again when I look in workbench, at the process recording, everything looks good.  It's just that the SOAP endpoint doesn't seem to be retunring the array?  Someone.....help....

3 Replies

Avatar

Level 2

Just so you know what the soap envelop looks like:

<wsdl:definitions targetNamespace="http://adobe.com/idp/services">

<!--

Generated for Adobe LiveCycle 8.0.1

To get the latest WSDL, add the lc_version property to the end of the URL.

For example: http://localhost:8080/soap/services/MyService?wsdl&lc_version=8.2.1

-->

<wsdl:types>

<schema elementFormDefault="qualified" targetNamespace="http://adobe.com/idp/services">

<import namespace="http://xml.apache.org/xml-soap"/>

<element name="invoke">

<complexType>

<sequence>

<element maxOccurs="1" minOccurs="0" name="searchName" type="xsd:string"/>

</sequence>

</complexType>

</element>

<element name="invokeResponse">

<complexType>

<sequence>

<element name="listofnames" type="impl:UserList"/>

</sequence>

</complexType>

</element>

<complexType name="MyArrayOf_xsd_anyType">

<sequence>

<element maxOccurs="unbounded" minOccurs="0" name="item" type="xsd:anyType"/>

</sequence>

</complexType>

<complexType name="UserList">

<sequence>

<element name="list" nillable="true" type="impl:MyArrayOf_xsd_anyType"/>

</sequence>

</complexType>

<complexType name="FormInstanceBase">

<sequence>

<element name="XFAData" nillable="true" type="xsd:base64Binary"/>

<element name="actionList" nillable="true" type="impl:MyArrayOf_xsd_anyType"/>

<element name="hardenedTemplatePath" nillable="true" type="xsd:string"/>

<element name="selectedAction" nillable="true" type="xsd:string"/>

<element name="templatePath" nillable="true" type="xsd:string"/>

</sequence>

</complexType>

<complexType name="FormDataTypeInstance">

<complexContent>

<extension base="impl:FormInstanceBase">

<sequence/>

</extension>

</complexContent>

</complexType>

<complexType name="SetValueMapping">

<sequence>

<element name="locationExpr" nillable="true" type="xsd:string"/>

<element name="valueExpr" nillable="true" type="xsd:string"/>

</sequence>

</complexType>

</schema>

<schema elementFormDefault="qualified" targetNamespace="http://xml.apache.org/xml-soap">

<import namespace="http://adobe.com/idp/services"/>

<complexType name="Vector">

<sequence>

<element maxOccurs="unbounded" minOccurs="0" name="item" type="xsd:anyType"/>

</sequence>

</complexType>

</schema>

</wsdl:types>

<wsdl:message name="invokeResponse">

<wsdl:part element="impl:invokeResponse" name="parameters"/>

</wsdl:message>

<wsdl:message name="invokeRequest">

<wsdl:part element="impl:invoke" name="parameters"/>

</wsdl:message>

<wsdl:portType name="LookUpCustomII">

<wsdl:operation name="invoke">

<wsdl:input message="impl:invokeRequest" name="invokeRequest"/>

<wsdl:output message="impl:invokeResponse" name="invokeResponse"/>

</wsdl:operation>

</wsdl:portType>

<wsdl:binding name="LookUpCustomIISoapBinding" type="impl:LookUpCustomII">

<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>

<wsdl:operation name="invoke">

<wsdlsoap:operation soapAction="invoke"/>

<wsdl:input name="invokeRequest">

<wsdlsoap:body use="literal"/>

</wsdl:input>

<wsdl:output name="invokeResponse">

<wsdlsoap:body use="literal"/>

</wsdl:output>

</wsdl:operation>

</wsdl:binding>

<wsdl:service name="LookUpCustomIIService">

<wsdl:port binding="impl:LookUpCustomIISoapBinding" name="LookUpCustomII">

<wsdlsoap:address location="http://wdadb02:8080/soap/services/LookUpCustomII"/>

</wsdl:port>

</wsdl:service>

</wsdl:definitions>

Avatar

Level 2

Anyone have any suggestions??

Avatar

Former Community Member

Can you trace and post the result in  event result from Flex side?

Tuan Anh