[resolved] Using scheduleTaskForInstantRunResponse

One Star

[resolved] Using scheduleTaskForInstantRunResponse

I'm having a problem using the scheduleTaskForInstantRunResponse method of the AdministratorWebService. Specifically, I'm unable to generate a valid client with the WSDL (http://TAC_ADMIN_URL/services/AdministratorWebService?wsdl) exposed.
Using, say, Axis2 or wsimport to create a client, the calls to this method will fail (org.xml.sax.SAXException: Found character data inside an array element while deserializing). If I write the XML by hand, things work OK but I think we should be able to expect the WSDL to match the necessary call.
Has anyone had any luck using this web service call?

Accepted Solutions
One Star

Re: [resolved] Using scheduleTaskForInstantRunResponse

Created this WSDL, and I am now able to use it to create a web service client and call scheduleTaskForInstantRun:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
targetNamespace="http://webservices.administrator.talend.org"
xmlns:impl="http://webservices.administrator.talend.org"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:types>
<schema targetNamespace="http://webservices.administrator.talend.org" xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
<complexType name="ArrayOfArrayOf_xsd_string">
<complexContent>
<restriction base="soapenc:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="soapenc:string[][]" />
</restriction>
</complexContent>
</complexType>
</schema>
</wsdl:types>
<wsdl:message name="initSessionResponse">
<wsdl:part name="initSessionResponse" type="soapenc:string" />
</wsdl:message>
<wsdl:message name="scheduleTaskForInstantRunResponse"></wsdl:message>
<wsdl:message name="closeSessionResponse"></wsdl:message>
<wsdl:message name="initSessionRequest">
<wsdl:part name="login" type="soapenc:string" />
<wsdl:part name="password" type="soapenc:string" />
</wsdl:message>
<wsdl:message name="closeSessionRequest">
<wsdl:part name="sessionId" type="soapenc:string" />
</wsdl:message>
<wsdl:message name="scheduleTaskForInstantRunRequest">
<wsdl:part name="sessionId" type="soapenc:string" />
<wsdl:part name="idTask" type="xsd:int" />
<wsdl:part name="queueIfNecessary" type="xsd:boolean" />
<!-- note that since we can't make a part optional, if there are no parameters, { {"", ""} } should be passed in -->
<wsdl:part name="contextParams" type="impl:ArrayOfArrayOf_xsd_string" />
</wsdl:message>
<wsdl:portType name="AdministratorWebService">
<wsdl:operation name="initSession" parameterOrder="login password">
<wsdl:input message="impl:initSessionRequest" name="initSessionRequest"/>
<wsdl:output message="impl:initSessionResponse" name="initSessionResponse"/>
</wsdl:operation>
<wsdl:operation name="closeSession" parameterOrder="sessionId">
<wsdl:input message="impl:closeSessionRequest" name="closeSessionRequest"/>
<wsdl:output message="impl:closeSessionResponse" name="closeSessionResponse"/>
</wsdl:operation>
<wsdl:operation name="scheduleTaskForInstantRun" parameterOrder="sessionId idTask queueIfNecessary contextParams">
<wsdl:input message="impl:scheduleTaskForInstantRunRequest" name="scheduleTaskForInstantRunRequest"/>
<wsdl:output message="impl:scheduleTaskForInstantRunResponse" name="scheduleTaskForInstantRunResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="AdministratorWebServiceSoapBinding" type="impl:AdministratorWebService">
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="initSession">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="initSessionRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://webservices.administrator.talend.org" use="encoded" />
</wsdl:input>
<wsdl:output name="initSessionResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://webservices.administrator.talend.org" use="encoded" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="closeSession">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="closeSessionRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://webservices.administrator.talend.org" use="encoded" />
</wsdl:input>
<wsdl:output name="closeSessionResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://webservices.administrator.talend.org" use="encoded" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="scheduleTaskForInstantRun">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="scheduleTaskForInstantRunRequest">
<wsdlsoap:body namespace="http://webservices.administrator.talend.org" use="literal" />
</wsdl:input>
<wsdl:output name="scheduleTaskForInstantRunResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://webservices.administrator.talend.org" use="encoded" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="AdministratorWebServiceService">
<wsdl:port binding="impl:AdministratorWebServiceSoapBinding" name="AdministratorWebService">
<!-- dummy URL; will need to set endpoint in code -->
<wsdlsoap:address location="http://example.com:8080/org.talend.administrator/services/AdministratorWebService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

All Replies
One Star

Re: [resolved] Using scheduleTaskForInstantRunResponse

Created this WSDL, and I am now able to use it to create a web service client and call scheduleTaskForInstantRun:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
targetNamespace="http://webservices.administrator.talend.org"
xmlns:impl="http://webservices.administrator.talend.org"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:types>
<schema targetNamespace="http://webservices.administrator.talend.org" xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
<complexType name="ArrayOfArrayOf_xsd_string">
<complexContent>
<restriction base="soapenc:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="soapenc:string[][]" />
</restriction>
</complexContent>
</complexType>
</schema>
</wsdl:types>
<wsdl:message name="initSessionResponse">
<wsdl:part name="initSessionResponse" type="soapenc:string" />
</wsdl:message>
<wsdl:message name="scheduleTaskForInstantRunResponse"></wsdl:message>
<wsdl:message name="closeSessionResponse"></wsdl:message>
<wsdl:message name="initSessionRequest">
<wsdl:part name="login" type="soapenc:string" />
<wsdl:part name="password" type="soapenc:string" />
</wsdl:message>
<wsdl:message name="closeSessionRequest">
<wsdl:part name="sessionId" type="soapenc:string" />
</wsdl:message>
<wsdl:message name="scheduleTaskForInstantRunRequest">
<wsdl:part name="sessionId" type="soapenc:string" />
<wsdl:part name="idTask" type="xsd:int" />
<wsdl:part name="queueIfNecessary" type="xsd:boolean" />
<!-- note that since we can't make a part optional, if there are no parameters, { {"", ""} } should be passed in -->
<wsdl:part name="contextParams" type="impl:ArrayOfArrayOf_xsd_string" />
</wsdl:message>
<wsdl:portType name="AdministratorWebService">
<wsdl:operation name="initSession" parameterOrder="login password">
<wsdl:input message="impl:initSessionRequest" name="initSessionRequest"/>
<wsdl:output message="impl:initSessionResponse" name="initSessionResponse"/>
</wsdl:operation>
<wsdl:operation name="closeSession" parameterOrder="sessionId">
<wsdl:input message="impl:closeSessionRequest" name="closeSessionRequest"/>
<wsdl:output message="impl:closeSessionResponse" name="closeSessionResponse"/>
</wsdl:operation>
<wsdl:operation name="scheduleTaskForInstantRun" parameterOrder="sessionId idTask queueIfNecessary contextParams">
<wsdl:input message="impl:scheduleTaskForInstantRunRequest" name="scheduleTaskForInstantRunRequest"/>
<wsdl:output message="impl:scheduleTaskForInstantRunResponse" name="scheduleTaskForInstantRunResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="AdministratorWebServiceSoapBinding" type="impl:AdministratorWebService">
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="initSession">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="initSessionRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://webservices.administrator.talend.org" use="encoded" />
</wsdl:input>
<wsdl:output name="initSessionResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://webservices.administrator.talend.org" use="encoded" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="closeSession">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="closeSessionRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://webservices.administrator.talend.org" use="encoded" />
</wsdl:input>
<wsdl:output name="closeSessionResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://webservices.administrator.talend.org" use="encoded" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="scheduleTaskForInstantRun">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="scheduleTaskForInstantRunRequest">
<wsdlsoap:body namespace="http://webservices.administrator.talend.org" use="literal" />
</wsdl:input>
<wsdl:output name="scheduleTaskForInstantRunResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://webservices.administrator.talend.org" use="encoded" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="AdministratorWebServiceService">
<wsdl:port binding="impl:AdministratorWebServiceSoapBinding" name="AdministratorWebService">
<!-- dummy URL; will need to set endpoint in code -->
<wsdlsoap:address location="http://example.com:8080/org.talend.administrator/services/AdministratorWebService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>