ode-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Anup Chandran <anup.chand...@3ds.com>
Subject org.apache.ode.axis2.OdeFault: Binding defines non-element document literal part(s)
Date Fri, 17 Aug 2007 17:52:38 GMT

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.


Mime
View raw message