Hi alex, Thanks for you reply.Here I am giving the Soap Request/Response generated by SoapUI:-
Soap request:- <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:eng="http://engineering.cbp.jpo"> <soapenv:Header/> <soapenv:Body> <eng:setAttribute> <eng:in0>60000.336.8624.26994</eng:in0> <!--1 or more repetitions:--> <eng:in1>Instance ID</eng:in1> <eng:in1>Process Instance ID</eng:in1> <!--1 or more repetitions:--> <eng:in2>61750</eng:in2> <eng:in2>{http://eclipse.org/bpel/sample}ECRProcess-243</eng:in2> </eng:setAttribute> </soapenv:Body> </soapenv:Envelope> Soap response:- <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <setAttributeResponse xmlns="http://engineering.cbp.jpo"/> </soapenv:Body> </soapenv:Envelope> Following are my wsdl file:- <?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions targetNamespace="http://client.engineering.cbp.jpo" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://client.engineering.cbp.jpo" xmlns:intf="http://client.engineering.cbp.jpo" xmlns:tns1="http://engineering.cbp.jpo" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:plnk="http://schemas.xmlsoap.org/ws/2004/03/partner-link/"> <!--WSDL created by Apache Axis version: 1.4 Built on Apr 22, 2006 (06:55:48 PDT)--> <wsdl:types> <schema elementFormDefault="qualified" targetNamespace="http://engineering.cbp.jpo" xmlns="http://www.w3.org/2001/XMLSchema"> <element name="setAttribute"> <complexType> <sequence> <element name="in0" type="xsd:string"/> <element maxOccurs="unbounded" name="in1" type="xsd:string"/> <element maxOccurs="unbounded" name="in2" type="xsd:string"/> </sequence> </complexType> </element> <element name="setAttributeResponse"> <complexType/> </element> <element name="getObjectID"> <complexType> <sequence> <element name="in0" type="xsd:string"/> <element name="in1" type="xsd:string"/> <element name="in2" type="xsd:string"/> <element name="in3" type="xsd:string"/> <element name="in4" type="xsd:string"/> </sequence> </complexType> </element> <element name="getObjectIDResponse"> <complexType> <sequence> <element name="getObjectIDReturn" type="xsd:string"/> </sequence> </complexType> </element> <element name="invokeProcess"> <complexType> <sequence> <element maxOccurs="unbounded" name="in0" type="xsd:string"/> </sequence> </complexType> </element> <element name="invokeProcessResponse"> <complexType> <sequence> <element name="invokeProcessReturn" type="xsd:string"/> </sequence> </complexType> </element> <element name="boPromoteDemote"> <complexType> <sequence> <element name="in0" type="xsd:string"/> <element name="in1" type="xsd:string"/> <element name="in2" type="xsd:string"/> <element name="in3" type="xsd:boolean"/> </sequence> </complexType> </element> <element name="boPromoteDemoteResponse"> <complexType> <sequence> <element name="boPromoteDemoteReturn" type="xsd:string"/> </sequence> </complexType> </element> </schema> </wsdl:types> <wsdl:message name="setAttributeResponse"> <wsdl:part element="tns1:setAttributeResponse" name="parameters"/> </wsdl:message> <wsdl:message name="invokeProcessRequest"> <wsdl:part element="tns1:invokeProcess" name="parameters"/> </wsdl:message> <wsdl:message name="boPromoteDemoteRequest"> <wsdl:part element="tns1:boPromoteDemote" name="parameters"/> </wsdl:message> <wsdl:message name="setAttributeRequest"> <wsdl:part element="tns1:setAttribute" name="parameters"/> </wsdl:message> <wsdl:message name="getObjectIDResponse"> <wsdl:part element="tns1:getObjectIDResponse" name="parameters"/> </wsdl:message> <wsdl:message name="boPromoteDemoteResponse"> <wsdl:part element="tns1:boPromoteDemoteResponse" name="parameters"/> </wsdl:message> <wsdl:message name="getObjectIDRequest"> <wsdl:part element="tns1:getObjectID" name="parameters"/> </wsdl:message> <wsdl:message name="invokeProcessResponse"> <wsdl:part element="tns1:invokeProcessResponse" name="parameters"/> </wsdl:message> <wsdl:portType name="CBPWorkflow"> <wsdl:operation name="setAttribute"> <wsdl:input message="impl:setAttributeRequest" name="setAttributeRequest"/> <wsdl:output message="impl:setAttributeResponse" name="setAttributeResponse"/> </wsdl:operation> <wsdl:operation name="getObjectID"> <wsdl:input message="impl:getObjectIDRequest" name="getObjectIDRequest"/> <wsdl:output message="impl:getObjectIDResponse" name="getObjectIDResponse"/> </wsdl:operation> <wsdl:operation name="invokeProcess"> <wsdl:input message="impl:invokeProcessRequest" name="invokeProcessRequest"/> <wsdl:output message="impl:invokeProcessResponse" name="invokeProcessResponse"/> </wsdl:operation> <wsdl:operation name="boPromoteDemote"> <wsdl:input message="impl:boPromoteDemoteRequest" name="boPromoteDemoteRequest"/> <wsdl:output message="impl:boPromoteDemoteResponse" name="boPromoteDemoteResponse"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="JpoCbpEngineeringCBPWorkflowSoapBinding" type="impl:CBPWorkflow"> <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="setAttribute"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="setAttributeRequest"> <wsdlsoap:body use="literal"/> </wsdl:input> <wsdl:output name="setAttributeResponse"> <wsdlsoap:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="getObjectID"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="getObjectIDRequest"> <wsdlsoap:body use="literal"/> </wsdl:input> <wsdl:output name="getObjectIDResponse"> <wsdlsoap:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="invokeProcess"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="invokeProcessRequest"> <wsdlsoap:body use="literal"/> </wsdl:input> <wsdl:output name="invokeProcessResponse"> <wsdlsoap:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="boPromoteDemote"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="boPromoteDemoteRequest"> <wsdlsoap:body use="literal"/> </wsdl:input> <wsdl:output name="boPromoteDemoteResponse"> <wsdlsoap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="CBPWorkflowService"> <wsdl:port binding="impl:JpoCbpEngineeringCBPWorkflowSoapBinding" name="JpoCbpEngineeringCBPWorkflow"> <wsdlsoap:address location="http://localhost:8080/ematrix/services/JpoCbpEngineeringCBPWorkflow"/> </wsdl:port> </wsdl:service> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Partner Link - Defines the role in the interaction of the service with external partner (in this case the Process) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <plnk:partnerLinkType name="CBPWorkflow"> <plnk:role name="me" portType="impl:CBPWorkflow" /> <plnk:role name="you" portType="impl:CBPWorkflow" /> </plnk:partnerLinkType> </wsdl:definitions> Now in ODE as you suggested earlier I tried to use doXslTransform for forming array but my problem is that I was not able to set required input parameter for web service. I tried following xsd file format for doXslTransform :- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:tns1="http://client.engineering.cbp.jpo" version="1.0"> <xsl:output method="xml"/> <xsl:param name="middle"/> <xsl:param name="abc"/> <xsl:template match="/"> <!-- The root element is the one that will be used as a base for the assignment rvalue --> <xsl:element name="root"> <xsl:element name="tns1:item"> <xsl:value-of select="$middle"/> </xsl:element> <xsl:element name="tns1:item"> <xsl:value-of select="$abc"/> </xsl:element> </xsl:element> </xsl:template> </xsl:stylesheet> Please let me know how can I get input paramter as array to web service? Thanks in advance. From Nilesh Rane ************************************************************************************** Alex Boisvert wrote: > > Nilesh, > > What I suggest is to install and use SoapUI to interactively figure out > the > message format you neeed to send to your service. Once you have a > request/response that works as expected in SoapUI, then copy the request > into an Ode message (using assignments) and try that. If the same request > doesn't work in Ode, then please file a bug including the working > request/response SOAP messages and your complete BPEL/WSDL test case > files. > > thanks, > alex > > > On 11/29/07, nileshlr <[EMAIL PROTECTED]> wrote: >> >> >> Hi Alex, >> I restarted all the exercise again,Now I am facing another error I am >> giving >> the error log : >> >> >> >> DEBUG - GeronimoLog.debug(66) | Axis2 sending message to >> >> >> http://localhost:8080/ematrix/services/JpoCbpEngineeringCBPWorkflowusing >> >> MEX {PartnerRoleMex#hqejbhcnphr2qu7o05xwgr [PID >> >> {http://eclipse.org/bpel/sample}ECRProcess-212] calling >> >> [EMAIL PROTECTED](...)} >> >> 17:22:51,455 DEBUG [ExternalService] Axis2 sending message to >> >> >> http://localhost:8080/ematrix/services/JpoCbpEngineeringCBPWorkflowusing >> >> MEX {PartnerRoleMex#hqejbhcnphr2qu7o05xwgr [PID >> >> {http://eclipse.org/bpel/sample}ECRProcess-212] calling >> >> [EMAIL PROTECTED](...)} >> >> DEBUG - GeronimoLog.debug(66) | Message: <?xml version='1.0' >> >> encoding='utf-8'?><soapenv:Envelope >> >> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/ >> >> "><soapenv:Body><axis2ns8:setAttribute >> >> xmlns:axis2ns8="http://engineering.cbp.jpo" >> >> xmlns:tns1="http://engineering.cbp.jpo"> >> >> <tns1:in0 >> >> xmlns:ns1="http://client.engineering.cbp.jpo" >> >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> >> xmlns:xsd="http://www.w3.org/2001/XMLSchema" >> >> xsi:type="xsd:string">60000.336.28909.27891</tns1:in0> >> >> <tns1:in1><tns1:item >> >> xmlns:tns1="http://client.engineering.cbp.jpo">Instance >> >> ID</tns1:item><tns1:item >> >> xmlns:tns1="http://client.engineering.cbp.jpo">Process Instance >> >> ID</tns1:item></tns1:in1> >> >> <tns1:in2><tns1:item >> >> xmlns:tns1="http://client.engineering.cbp.jpo >> ">50911</tns1:item><tns1:item >> >> xmlns:tns1="http://client.engineering.cbp.jpo">{ >> >> http://eclipse.org/bpel/sample}ECRProcess-212</tns1:item></tns1:in2> >> >> >> >> </axis2ns8:setAttribute></soapenv:Body></soapenv:Envelope> >> >> 17:22:51,455 DEBUG [ExternalService] Message: <?xml version='1.0' >> >> encoding='utf-8'?><soapenv:Envelope >> >> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/ >> >> "><soapenv:Body><axis2ns8:setAttribute >> >> xmlns:axis2ns8="http://engineering.cbp.jpo" >> >> xmlns:tns1="http://engineering.cbp.jpo"> >> >> <tns1:in0 >> >> xmlns:ns1="http://client.engineering.cbp.jpo" >> >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> >> xmlns:xsd="http://www.w3.org/2001/XMLSchema" >> >> xsi:type="xsd:string">60000.336.28909.27891</tns1:in0> >> >> <tns1:in1><tns1:item >> >> xmlns:tns1="http://client.engineering.cbp.jpo">Instance >> >> ID</tns1:item><tns1:item >> >> xmlns:tns1="http://client.engineering.cbp.jpo">Process Instance >> >> ID</tns1:item></tns1:in1> >> >> <tns1:in2><tns1:item >> >> xmlns:tns1="http://client.engineering.cbp.jpo >> ">50911</tns1:item><tns1:item >> >> xmlns:tns1="http://client.engineering.cbp.jpo">{ >> >> http://eclipse.org/bpel/sample}ECRProcess-212</tns1:item></tns1:in2> >> >> >> >> </axis2ns8:setAttribute></soapenv:Body></soapenv:Envelope> >> >> DEBUG - GeronimoLog.debug(66) | replyAsync mex=hqejbhcnphr2qu7o05xwgr >> >> 17:22:51,455 DEBUG [PartnerRoleMessageExchangeImpl] replyAsync >> >> mex=hqejbhcnphr2qu7o05xwgr >> >> DEBUG - GeronimoLog.debug(66) | Setting execution state on instance >> 50911 >> >> 17:22:51,455 DEBUG [BpelRuntimeContextImpl] Setting execution state on >> >> instance 50911 >> >> DEBUG - GeronimoLog.debug(66) | Thread[pool-2-thread-276,5,main]: >> >> unlock(iid=50911) >> >> 17:22:51,502 DEBUG [InstanceLockManager] >> >> Thread[pool-2-thread-276,5,main]: >> >> unlock(iid=50911) >> >> DEBUG - GeronimoLog.debug(66) | Sending stateful TO epr in message >> header >> >> using session null >> >> 17:22:51,518 DEBUG [SessionOutHandler] Sending stateful TO epr in >> message >> >> header using session null >> >> DEBUG - GeronimoLog.debug(66) | Sending a message containing wsa >> >> endpoints >> >> in headers for session passing. >> >> 17:22:51,518 DEBUG [SessionOutHandler] Sending a message containing >> wsa >> >> endpoints in headers for session passing. >> >> DEBUG - GeronimoLog.debug(66) | <?xml version='1.0' >> >> encoding='utf-8'?><soapenv:Envelope >> >> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/ >> >> "><soapenv:Header><addr:To >> >> xmlns:addr="http://www.w3.org/2005/08/addressing"> >> >> http://localhost:8080/ematrix/services/JpoCbpEngineeringCBPWorkflow >> >> </addr:To><addr:Action >> >> xmlns:addr="http://www.w3.org/2005/08/addressing >> >> "></addr:Action><addr:ReplyTo >> >> xmlns:addr="http://www.w3.org/2005/08/addressing"><addr:Address> >> >> http://www.w3.org/2005/08/addressing/anonymous >> >> </addr:Address></addr:ReplyTo><addr:MessageID >> >> xmlns:addr="http://www.w3.org/2005/08/addressing >> >> >> ">uuid:hqejbhcnphr2qu7o05xwgs</addr:MessageID></soapenv:Header><soapenv:Body><axis2ns8:setAttribute >> >> xmlns:axis2ns8="http://engineering.cbp.jpo" >> >> xmlns:tns1="http://engineering.cbp.jpo"> >> >> <tns1:in0 >> >> xmlns:ns1="http://client.engineering.cbp.jpo" >> >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> >> xmlns:xsd="http://www.w3.org/2001/XMLSchema" >> >> xsi:type="xsd:string">60000.336.28909.27891</tns1:in0> >> >> <tns1:in1><tns1:item >> >> xmlns:tns1="http://client.engineering.cbp.jpo">Instance >> >> ID</tns1:item><tns1:item >> >> xmlns:tns1="http://client.engineering.cbp.jpo">Process Instance >> >> ID</tns1:item></tns1:in1> >> >> <tns1:in2><tns1:item >> >> xmlns:tns1="http://client.engineering.cbp.jpo >> ">50911</tns1:item><tns1:item >> >> xmlns:tns1="http://client.engineering.cbp.jpo">{ >> >> http://eclipse.org/bpel/sample}ECRProcess-212</tns1:item></tns1:in2> >> >> >> >> </axis2ns8:setAttribute></soapenv:Body></soapenv:Envelope> >> >> 17:22:51,518 DEBUG [SessionOutHandler] <?xml version='1.0' >> >> encoding='utf-8'?><soapenv:Envelope >> >> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/ >> >> "><soapenv:Header><addr:To >> >> xmlns:addr="http://www.w3.org/2005/08/addressing"> >> >> http://localhost:8080/ematrix/services/JpoCbpEngineeringCBPWorkflow >> >> </addr:To><addr:Action >> >> xmlns:addr="http://www.w3.org/2005/08/addressing >> >> "></addr:Action><addr:ReplyTo >> >> xmlns:addr="http://www.w3.org/2005/08/addressing"><addr:Address> >> >> http://www.w3.org/2005/08/addressing/anonymous >> >> </addr:Address></addr:ReplyTo><addr:MessageID >> >> xmlns:addr="http://www.w3.org/2005/08/addressing >> >> >> ">uuid:hqejbhcnphr2qu7o05xwgs</addr:MessageID></soapenv:Header><soapenv:Body><axis2ns8:setAttribute >> >> xmlns:axis2ns8="http://engineering.cbp.jpo" >> >> xmlns:tns1="http://engineering.cbp.jpo"> >> >> <tns1:in0 >> >> xmlns:ns1="http://client.engineering.cbp.jpo" >> >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> >> xmlns:xsd="http://www.w3.org/2001/XMLSchema" >> >> xsi:type="xsd:string">60000.336.28909.27891</tns1:in0> >> >> <tns1:in1><tns1:item >> >> xmlns:tns1="http://client.engineering.cbp.jpo">Instance >> >> ID</tns1:item><tns1:item >> >> xmlns:tns1="http://client.engineering.cbp.jpo">Process Instance >> >> ID</tns1:item></tns1:in1> >> >> <tns1:in2><tns1:item >> >> xmlns:tns1="http://client.engineering.cbp.jpo >> ">50911</tns1:item><tns1:item >> >> xmlns:tns1="http://client.engineering.cbp.jpo">{ >> >> http://eclipse.org/bpel/sample}ECRProcess-212</tns1:item></tns1:in2> >> >> >> >> </axis2ns8:setAttribute></soapenv:Body></soapenv:Envelope> >> >> ERROR - GeronimoLog.error(108) | Error sending message >> >> (mex={PartnerRoleMex#hqejbhcnphr2qu7o05xwgr [PID >> >> {http://eclipse.org/bpel/sample}ECRProcess-212] calling >> >> [EMAIL PROTECTED](...)}): >> >> org.xml.sax.SAXException: Invalid element in >> >> jpo.cbp.engineering.ArrayOfItems - item >> >> org.apache.axis2.AxisFault: org.xml.sax.SAXException: Invalid element >> in >> >> jpo.cbp.engineering.ArrayOfItems - item >> >> at >> >> org.apache.axis2.util.Utils.getInboundFaultFromMessageContext( >> Utils.java >> >> :486) >> >> at >> >> org.apache.axis2.description.OutInAxisOperationClient.handleResponse( >> >> OutInAxisOperation.java:343) >> >> at >> >> org.apache.axis2.description.OutInAxisOperationClient.send( >> >> OutInAxisOperation.java:389) >> >> at >> >> org.apache.axis2.description.OutInAxisOperationClient.executeImpl( >> >> OutInAxisOperation.java:211) >> >> at >> >> org.apache.axis2.client.OperationClient.execute(OperationClient.java >> :163) >> >> at org.apache.ode.axis2.ExternalService$1$1.call( >> >> ExternalService.java:150) >> >> at java.util.concurrent.FutureTask$Sync.innerRun( >> FutureTask.java >> >> :269) >> >> at java.util.concurrent.FutureTask.run(FutureTask.java:123) >> >> at >> >> java.util.concurrent.ThreadPoolExecutor$Worker.runTask( >> >> ThreadPoolExecutor.java:650) >> >> at >> >> java.util.concurrent.ThreadPoolExecutor$Worker.run( >> ThreadPoolExecutor.java >> >> :675) >> >> at java.lang.Thread.run(Thread.java:595) >> >> 17:22:51,534 ERROR [ExternalService] Error sending message >> >> (mex={PartnerRoleMex#hqejbhcnphr2qu7o05xwgr [PID >> >> {http://eclipse.org/bpel/sample}ECRProcess-212] calling >> >> [EMAIL PROTECTED](...)}): >> >> org.xml.sax.SAXException: Invalid element in >> >> jpo.cbp.engineering.ArrayOfItems - item >> >> org.apache.axis2.AxisFault: org.xml.sax.SAXException: Invalid element >> in >> >> jpo.cbp.engineering.ArrayOfItems - item >> >> at >> >> org.apache.axis2.util.Utils.getInboundFaultFromMessageContext( >> Utils.java >> >> :486) >> >> at >> >> org.apache.axis2.description.OutInAxisOperationClient.handleResponse( >> >> OutInAxisOperation.java:343) >> >> at >> >> org.apache.axis2.description.OutInAxisOperationClient.send( >> >> OutInAxisOperation.java:389) >> >> at >> >> org.apache.axis2.description.OutInAxisOperationClient.executeImpl( >> >> OutInAxisOperation.java:211) >> >> at >> >> org.apache.axis2.client.OperationClient.execute(OperationClient.java >> :163) >> >> at org.apache.ode.axis2.ExternalService$1$1.call( >> >> ExternalService.java:150) >> >> at java.util.concurrent.FutureTask$Sync.innerRun( >> FutureTask.java >> >> :269) >> >> at java.util.concurrent.FutureTask.run(FutureTask.java:123) >> >> at >> >> java.util.concurrent.ThreadPoolExecutor$Worker.runTask( >> >> ThreadPoolExecutor.java:650) >> >> at >> >> java.util.concurrent.ThreadPoolExecutor$Worker.run( >> ThreadPoolExecutor.java >> >> :675) >> >> at java.lang.Thread.run(Thread.java:595) >> >> >> > >> > >> >> -- >> View this message in context: >> http://www.nabble.com/calling-external-web-service-function-fails%2C-when-using-string-array-as-input-to-function.-tf4770975.html#a14026937 >> Sent from the Apache Ode User mailing list archive at Nabble.com. >> >> > > -- View this message in context: http://www.nabble.com/calling-external-web-service-function-fails%2C-when-using-string-array-as-input-to-function.-tf4770975.html#a14063020 Sent from the Apache Ode User mailing list archive at Nabble.com.
