Hi Anup, The first approach fails because you can't use XSD types with Document-Literal binding.
The second approach should work. Did you erase the .deployed file to redeploy the process between the two attempts? alex On 8/17/07, Anup Chandran <[EMAIL PROTECTED]> wrote: > > > Hi All, sorry for the long message but have couple of things that i tried, > but both approaches failed. > > Please see below the error messages when the process is instantiated. The > receive activity has some issues... > > BPEL Definition: > > <?xml version="1.0" encoding="UTF-8"?> > <bpws:process > xmlns:bpws="http://schemas.xmlsoap.org/ws/2004/03/business-process/" > xmlns:ns="http://client.epm.apps.matrixone.com" > xmlns:tns="http://eclipse.org/bpel/sample" exitOnStandardFault="yes" > name="ECRProcess" suppressJoinFailure="yes" > targetNamespace="http://eclipse.org/bpel/sample"> > <bpws:import importType="http://schemas.xmlsoap.org/wsdl/" > location="ECRProcess.wsdl" namespace="http://eclipse.org/bpel/sample"/> > <bpws:import importType="http://schemas.xmlsoap.org/wsdl/" > location="ComMatrixoneAppsEpmMyECR.wsdl" > namespace="http://client.epm.apps.matrixone.com"/> > <bpws:partnerLinks> > <bpws:partnerLink myRole="ECRProcessProvider" name="client" > partnerLinkType="tns:ECRProcess" partnerRole="ECRProcessRequester"/> > <bpws:partnerLink name="CreateECRPartnerLink" > partnerLinkType="ns:CreateECR" > partnerRole="you"/> > </bpws:partnerLinks> > <bpws:variables> > <bpws:variable messageType="tns:ECRProcessRequestMessage" name="input"/> > <bpws:variable messageType="tns:ECRProcessResponseMessage" name="output"/> > <bpws:variable messageType="ns:createBusResponse" > name="CreateECRPartnerLinkResponse"/> > <bpws:variable messageType="ns:createBusRequest" > name="CreateECRPartnerLinkRequest"/> > </bpws:variables> > <bpws:sequence name="main"> > <bpws:scope name="Design Change Proposal"> > <bpws:sequence name="HiddenSequence"> > <bpws:receive createInstance="yes" name="receiveCreationRequest" > operation="receiveIssue" partnerLink="client" portType="tns:ECRProcess" > variable="input"/> > <bpws:assign name="Assign" validate="no"> > <bpws:copy> > <bpws:from><![CDATA[concat("Hello,*******************", $input.password," > ", > $input.username > ," ",$input.type," ",$input.name," ",$input.rev," ",$input.policy," > ",$input.vault)]]></bpws:from> > <bpws:to part="payload" variable="output"> > <bpws:query > queryLanguage="http://www.w3.org/TR/1999/REC-xpath-19991116 > "><![CDATA[/tns:response]]></bpws:query> > </bpws:to> > </bpws:copy> > </bpws:assign> > <bpws:assign name="AssignCreateRequest" validate="no"> > <bpws:copy> > <bpws:from part="password" variable="input"/> > <bpws:to part="password" variable="CreateECRPartnerLinkRequest"/> > </bpws:copy> > <bpws:copy> > <bpws:from part="policy" variable="input"/> > <bpws:to part="policy" variable="CreateECRPartnerLinkRequest"/> > </bpws:copy> > <bpws:copy> > <bpws:from part="vault" variable="input"/> > <bpws:to part="vault" variable="CreateECRPartnerLinkRequest"/> > </bpws:copy> > <bpws:copy> > <bpws:from part="type" variable="input"/> > <bpws:to part="type" variable="CreateECRPartnerLinkRequest"/> > </bpws:copy> > <bpws:copy> > <bpws:from part="username" variable="input"/> > <bpws:to part="username" variable="CreateECRPartnerLinkRequest"/> > </bpws:copy> > <bpws:copy> > <bpws:from part="name" variable="input"/> > <bpws:to part="name" variable="CreateECRPartnerLinkRequest"/> > </bpws:copy> > <bpws:copy> > <bpws:from part="rev" variable="input"/> > <bpws:to part="rev" variable="CreateECRPartnerLinkRequest"/> > </bpws:copy> > </bpws:assign> > <bpws:assign name="SystemOut" validate="no"> > <bpws:copy> > <bpws:from><![CDATA[concat("CreateECRPartnerLinkRequest ...wgn......", > $CreateECRPartnerLinkRequest.username," ", > $CreateECRPartnerLinkRequest.password > ," ",$CreateECRPartnerLinkRequest.type," > ",$CreateECRPartnerLinkRequest.name," ",$CreateECRPartnerLinkRequest.rev," > ",$CreateECRPartnerLinkRequest.policy," > ",$CreateECRPartnerLinkRequest.vault)]]></bpws:from> > <bpws:to part="payload" variable="output"> > <bpws:query > queryLanguage="http://www.w3.org/TR/1999/REC-xpath-19991116 > "><![CDATA[/tns:response]]></bpws:query> > </bpws:to> > </bpws:copy> > </bpws:assign> > <bpws:invoke inputVariable="CreateECRPartnerLinkRequest" name="CreateECR" > operation="createBus" outputVariable="CreateECRPartnerLinkResponse" > partnerLink="CreateECRPartnerLink" portType="ns:CreateECR"/> > <bpws:invoke inputVariable="output" name="callbackClient" > operation="onResult" partnerLink="client" > portType="tns:ECRProcessCallback"/> > </bpws:sequence> > </bpws:scope> > </bpws:sequence> > </bpws:process> > > WSDL Definition : > > <?xml version="1.0"?> > <definitions name="ECRProcess" > targetNamespace="http://eclipse.org/bpel/sample" > xmlns:tns="http://eclipse.org/bpel/sample" > xmlns:plnk="http://schemas.xmlsoap.org/ws/2004/03/partner-link/" > xmlns="http://schemas.xmlsoap.org/wsdl/" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> > > <!-- > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > TYPE DEFINITION - List of services participating in this > BPEL process > The default output of the BPEL designer uses strings as > input and > output to the BPEL Process. But you can define or import > any XML > Schema type and us them as part of the message types. > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > --> > <types> > <schema attributeFormDefault="unqualified" > elementFormDefault="qualified" > targetNamespace="http://eclipse.org/bpel/sample" > xmlns="http://www.w3.org/2001/XMLSchema"> > > <element name="ECRProcessResponse"> > <complexType> > <sequence> > <element name="response" > type="string"></element> > </sequence> > </complexType> > </element> > > </schema> > </types> > > <!-- > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > MESSAGE TYPE DEFINITION - Definition of the message types > used as > part of the port type defintions > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > --> > <message name="ECRProcessRequestMessage"> > <part name="username" type="xsd:string"/> > <part name="password" type="xsd:string"/> > <part name="type" type="xsd:string"/> > <part name="name" type="xsd:string"/> > <part name="rev" type="xsd:string"/> > <part name="vault" type="xsd:string"/> > <part name="policy" type="xsd:string"/> > </message> > > <message name="ECRProcessResponseMessage"> > <part name="payload" element="tns:ECRProcessResponse" /> > </message> > > > <!-- > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > PORT TYPE DEFINITION - A port type groups a set of > operations into > a logical service unit. > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > --> > <!-- portType implemented by the ECRProcess BPEL process --> > <portType name="ECRProcess"> > <operation name="receiveIssue"> > <input message="tns:ECRProcessRequestMessage" /> > </operation> > </portType> > > <!-- portType implemented by the requester of ECRProcess BPEL > process > for asynchronous callback purposes > --> > <portType name="ECRProcessCallback"> > <operation name="onResult"> > <input message="tns:ECRProcessResponseMessage" /> > </operation> > </portType> > > > <!-- > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > PARTNER LINK TYPE DEFINITION > the ECRProcess partnerLinkType binds the provider and > requester portType into an asynchronous conversation. > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > --> > <plnk:partnerLinkType name="ECRProcess"> > <plnk:role name="ECRProcessProvider" > portType="tns:ECRProcess" /> > <plnk:role name="ECRProcessRequester" > portType="tns:ECRProcessCallback" /> > </plnk:partnerLinkType> > > > <binding name="ECRProcessSoapBinding" type="tns:ECRProcess"> > <soap:binding style="document" > transport="http://schemas.xmlsoap.org/soap/http" > /> > <operation name="receiveIssue"> > <soap:operation soapAction="" style="document" /> > <input> > <soap:body > namespace=" > http://sample.bpel.org/bpel/sample" use="literal" /> > </input> > </operation> > </binding> > > <binding name="ECRProcessResponseSoapBinding" > type="tns:ECRProcessCallback"> > <soap:binding style="document" > transport="http://schemas.xmlsoap.org/soap/http" > /> > <operation name="onResult"> > <soap:operation soapAction="" style="document" /> > <input> > <soap:body > namespace=" > http://sample.bpel.org/bpel/sample" use="literal" /> > </input> > </operation> > > </binding> > > > <service name="ECRProcessInvokeService"> > <documentation> > Receives request for the invocation of ECR > </documentation> > <port name="ECRProcessPort" > binding="tns:ECRProcessSoapBinding"> > <soap:address > location=" > http://localhost:8080/ode/processes/ecrProcess" /> > </port> > </service> > > <service name="ECRProcessResponderService"> > <documentation>Return message</documentation> > <port name="ECRProcessCallbackPort" > binding="tns:ECRProcessResponseSoapBinding"> > <soap:address > location=" > http://localhost:8080/ode/processes/ecrProcessResponse" /> > </port> > </service> > > > </definitions> > > Request Message : > > <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/ > " > xmlns:sam="http://eclipse.org/bpel/sample"> > <soapenv:Header/> > <soapenv:Body> > <sam:receiveIssue> > <sam:username>Test Everything</sam:username> > <sam:password>1234</sam:password> > <sam:type>ECR</sam:type> > <sam:name>ECR01001</sam:name> > <sam:rev>-</sam:rev> > <sam:policy>ECR (Standard)</sam:policy> > <sam:vault>eService Sample</sam:vault> > </sam:receiveIssue> > </soapenv:Body> > </soapenv:Envelope> > > Error shows : > > > Part: name=rev > typeName={http://www.w3.org/2001/XMLSchema}string from service > {http://eclipse.org/bpel/sample}ECRProcessInvokeService > 12:49:49,009 DEBUG [ODEService] ODE routed to operation Operation: > name=receiveIssue > style=ONE_WAY,0 > Input: name=RequestMessage > Message: name={http://eclipse.org/bpel/sample}ECRProcessRequestMessage > Part: name=password > typeName={http://www.w3.org/2001/XMLSchema}string > Part: name=policy > typeName={http://www.w3.org/2001/XMLSchema}string > Part: name=vault > typeName={http://www.w3.org/2001/XMLSchema}string > Part: name=type > typeName={http://www.w3.org/2001/XMLSchema}string > Part: name=username > typeName={http://www.w3.org/2001/XMLSchema}string > Part: name=name > typeName={http://www.w3.org/2001/XMLSchema}string > Part: name=rev > typeName={http://www.w3.org/2001/XMLSchema}string from service > {http://eclipse.org/bpel/sample}ECRProcessInvokeService > ERROR - GeronimoLog.error(108) | Exception occured while invoking ODE > org.apache.ode.axis2.OdeFault: Binding defines non-element document > literal > part(s); nested exception is: > java.lang.IllegalArgumentException: Binding defines non-element > document literal part(s) > at > org.apache.ode.axis2.util.SoapMessageConverter.extractSoapBodyParts( > SoapMessageConverter.java:379) > at > org.apache.ode.axis2.util.SoapMessageConverter.parseSoapRequest( > SoapMessageConverter.java:292) > at > org.apache.ode.axis2.ODEService.onAxisMessageExchange(ODEService.java:118) > at > org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic( > ODEMessageReceiver.java:68) > at > org.apache.ode.axis2.hooks.ODEMessageReceiver.receive( > ODEMessageReceiver.java:62) > at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:506) > at > org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest( > HTTPTransportUtils.java:328) > at > org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:255) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:763) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > ApplicationFilterChain.java:252) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter( > ApplicationFilterChain.java:173) > at > org.apache.catalina.core.StandardWrapperValve.invoke( > StandardWrapperValve.java:213) > at > org.apache.catalina.core.StandardContextValve.invoke( > StandardContextValve.java:178) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java > :126) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java > :105) > at > org.apache.catalina.core.StandardEngineValve.invoke( > StandardEngineValve.java:107) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java > :148) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) > at > > org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection > (Http11BaseProtocol.ja > :664) > at > org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket( > PoolTcpEndpoint.java:527) > at > org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt( > LeaderFollowerWorkerThread.java:80) > at > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run( > ThreadPool.java:684) > at java.lang.Thread.run(Thread.java:595) > Caused by: java.lang.IllegalArgumentException: Binding defines non-element > document literal part(s) > at > org.apache.ode.axis2.Messages.msgBindingDefinesNonElementDocListParts( > Messages.java:193) > ... 24 more > 12:49:49,009 ERROR [ODEService] Exception occured while invoking ODE > org.apache.ode.axis2.OdeFault: Binding defines non-element document > literal > part(s); nested exception is: > > > Not sure why the error is thrown , the wsdl port definitions do not define > element attribute for the message > > <portType name="ECRProcess"> > <operation name="receiveIssue"> > <input message="tns:ECRProcessRequestMessage" > /> > </operation> > </portType> > > The next thing i tried is redefining my portType definition to have an > element attribute > > This is the modification i did: > > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > --> > <types> > <schema attributeFormDefault="unqualified" > elementFormDefault="qualified" > targetNamespace="http://eclipse.org/bpel/sample" > xmlns="http://www.w3.org/2001/XMLSchema"> > > <element name="ECRProcessResponse"> > <complexType> > <sequence> > <element name="response" > type="string"></element> > </sequence> > </complexType> > </element> > > <element name="username" type="string" /> > <element name="password" type="string" /> > <element name="type" type="string" /> > <element name="name" type="string" /> > <element name="rev" type="string" /> > <element name="policy" type="string" /> > <element name="vault" type="string" /> > > > </schema> > </types> > > <!-- > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > MESSAGE TYPE DEFINITION - Definition of the message types > used as > part of the port type defintions > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > --> > <message name="ECRProcessRequestMessage"> > <part name="username" element="tns:username"/> > <part name="password" element="tns:password"/> > <part name="type" element="tns:type"/> > <part name="name" element="tns:name"/> > <part name="rev" element="tns:rev"/> > <part name="vault" element="tns:vault"/> > <part name="policy" element="tns:policy"/> > > </message> > > <message name="ECRProcessResponseMessage"> > <part name="payload" element="tns:ECRProcessResponse" /> > </message> > > > <!-- > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > PORT TYPE DEFINITION - A port type groups a set of > operations into > a logical service unit. > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > --> > <!-- portType implemented by the ECRProcess BPEL process --> > <portType name="ECRProcess"> > <operation name="receiveIssue"> > <input message="tns:ECRProcessRequestMessage" > name="RequestMessage" /> > </operation> > </portType> > > The error this time around was : > > elementName={http://eclipse.org/bpel/sample}rev from service > {http://eclipse.org/bpel/sample}ECRProcessInvokeService > 13:20:58,586 DEBUG [ODEService] ODE routed to operation Operation: > name=receiveIssue > style=ONE_WAY,0 > Input: name=RequestMessage > Message: name={http://eclipse.org/bpel/sample}ECRProcessRequestMessage > Part: name=password > elementName={http://eclipse.org/bpel/sample}password > Part: name=policy > elementName={http://eclipse.org/bpel/sample}policy > Part: name=vault > elementName={http://eclipse.org/bpel/sample}vault > Part: name=type > elementName={http://eclipse.org/bpel/sample}type > Part: name=username > elementName={http://eclipse.org/bpel/sample}username > Part: name=name > elementName={http://eclipse.org/bpel/sample}name > Part: name=rev > elementName={http://eclipse.org/bpel/sample}rev from service > {http://eclipse.org/bpel/sample}ECRProcessInvokeService > ERROR - GeronimoLog.error(108) | Exception occured while invoking ODE > org.apache.ode.axis2.OdeFault: Unexpected element in SOAP body: message > {http://eclipse.org/bpel/sample}receiveIssue ele > ment {http://eclipse.org/bpel/sample}username.; nested exception is: > java.lang.IllegalArgumentException: Unexpected element in SOAP > body: > message {http://eclipse.org/bpel/sample}rec > eiveIssue element {http://eclipse.org/bpel/sample}username. > at > org.apache.ode.axis2.util.SoapMessageConverter.extractSoapBodyParts( > SoapMessageConverter.java:381) > at > org.apache.ode.axis2.util.SoapMessageConverter.parseSoapRequest( > SoapMessageConverter.java:292) > at > org.apache.ode.axis2.ODEService.onAxisMessageExchange(ODEService.java:118) > at > org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic( > ODEMessageReceiver.java:68) > at > org.apache.ode.axis2.hooks.ODEMessageReceiver.receive( > ODEMessageReceiver.java:62) > at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:506) > at > org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest( > HTTPTransportUtils.java:328) > at > org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:255) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:763) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > ApplicationFilterChain.java:252) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter( > ApplicationFilterChain.java:173) > at > org.apache.catalina.core.StandardWrapperValve.invoke( > StandardWrapperValve.java:213) > at > org.apache.catalina.core.StandardContextValve.invoke( > StandardContextValve.java:178) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java > :126) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java > :105) > at > org.apache.catalina.core.StandardEngineValve.invoke( > StandardEngineValve.java:107) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java > :148) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) > at > > org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection > (Http11BaseProtocol.java > :664) > > > Anup > -- > View this message in context: > http://www.nabble.com/org.apache.ode.axis2.OdeFault%3A-Binding-defines-non-element-document-literal-part%28s%29-tf4287132.html#a12203907 > Sent from the Apache Ode User mailing list archive at Nabble.com. > >
