One Star

webservice/deserialize ???

I'm probably to stupid to find out the reason of my problem : war file generated and deployed from my job (J2EE5/jre 1.6.0_06/Tomcat 6.0.16 on w2000)
I tried and succeed to call the ws, returning a simple integer value. The job executes perfectly but...
Whatever I try to map the return result, I always obtain the following kind of error :
<i>org.xml.sax.SAXException: Deserializing parameter 'item': could not find deserializer for type {htt
p://talend.org}ArrayOf_xsd_string</i>
I use this axis code to call the ws :
<code>
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL("http://myServer:myport/MyWsName_0.2/services/MyWsName));
call.setOperationName("runJob");
String[] returns = (String[]) call.invoke(obj);
</code>
I also tried with http.talend.ArrayOf_xsd_string (the generated package differs from the call, apparently...
Added the proxy code generated by netbeans in a jar, in WEB-INF/lib directory (containing Args, ArrayOf_xsd_string and so on).
What am I missing ?
:-(
6 REPLIES
One Star

Re: webservice/deserialize ???

I"m having a similar problem. Any help would be appreciated.
One Star

Re: webservice/deserialize ???

hi All,
I have a similar problem too.
I'm using an exported talend job as a web service. I invoke it by axis client. It work fine (the procedure implemented for ), but the client give back this error " Deserializing parameter 'item': could not find deserializer for type {http://talend.org}args " .
What I do wrong?
best regarde
One Star

Re: webservice/deserialize ???

Anyone solve this problem? I have the same issue in 3.1.1.
Thanks,
Joe
One Star

Re: webservice/deserialize ???

I found the issue with this service call. It tried it in CXF as well and got a better error message that pointed me to the problem.
This problem is a name conflict in the wsdl:types section. There's an element named "args" and a complexType named "args" which are conflicting with each other when you run wsdl2java.
I modified the element to be "argsE" and updated it's reference in the wsdl below and I'm able to call the web service now from axis and cxf.
Can we get this in the queue to be fixed in future releases?
<wsdl:types>
<schema elementFormDefault="qualified" targetNamespace="http://talend.org"
xmlns="http://www.w3.org/2001/XMLSchema">
<element name="argsE">
<complexType>
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="item"
type="xsd:string" />
</sequence>
</complexType>
</element>
<complexType name="args">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="item"
type="xsd:string" />
</sequence>
</complexType>
<element name="runJobReturn">
<complexType>
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="item"
type="impl:args" />
</sequence>
</complexType>
</element>
</schema>
</wsdl:types>
Community Manager

Re: webservice/deserialize ???

Hello
I modified the element to be "argsE" and updated it's reference in the wsdl below and I'm able to call the web service now from axis and cxf.
Can we get this in the queue to be fixed in future releases?

Please report a bug on our bugtracker.
Thanks for your support!!
Best regards

shong
----------------------------------------------------------
Talend | Data Agility for Modern Business
One Star

Re: webservice/deserialize ???

This might be the same kind of pb here : http://www.talendforge.org/bugs/view.php?id=8607