How to reference elements in a sequence within a complexType
jiehuan_li Jun 29, 2006 7:21 PMI am using the following schema:
<schema targetNamespace="com:vizuri:bpel:svc" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="com:vizuri:bpel:svc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <complexType name="EnrollmentMessageType"> <sequence> <element name="addressLine1" nillable="true" type="string" /> <element name="city" nillable="true" type="string" /> <element name="dateOfBirth" nillable="true" type="dateTime" /> <element name="firstName" nillable="true" type="string" /> <element name="lastName" nillable="true" type="string" /> <element name="state" nillable="true" type="string" /> <element name="zip" nillable="true" type="string" /> </sequence> </complexType> </schema>
And I am trying to reference 'firstName' on my .bpel file like following:
<assign name="connectionBetween"> <copy> <from variable="svc2OutputMsg" part="result" /> <to variable="svcReq" part="EnrollmentMessageType_1" query="/EnrollmentMessageType_1/svc:firstName" /> </copy> </assign>
But I am getting the following exception:
18:54:44,613 ERROR [SOAPFaultExceptionHelper] SOAP request exception
javax.xml.rpc.JAXRPCException: org.jboss.ws.binding.BindingException: javax.xml.bind.JAXBException: Failed to parse source: Requested element {com:vizuri:bpel:svc}firstName is not allowed in this posi
tion in the sequence. The next element should be {com:vizuri:bpel:svc}addressLine1
at org.jboss.ws.soap.SOAPContentElement.getObjectValue(SOAPContentElement.java:307)
at org.jboss.ws.binding.EndpointInvocation.transformPayloadValue(EndpointInvocation.java:233)
at org.jboss.ws.binding.EndpointInvocation.getRequestParamValue(EndpointInvocation.java:103)
at org.jboss.ws.binding.EndpointInvocation.getRequestPayload(EndpointInvocation.java:117)
at org.jboss.ws.server.ServiceEndpointInvokerJSE.invokeServiceEndpoint(ServiceEndpointInvokerJSE.java:94)
at org.jboss.ws.server.ServiceEndpointInvoker.invoke(ServiceEndpointInvoker.java:118)
at org.jboss.ws.server.ServiceEndpoint.handleRequest(ServiceEndpoint.java:234)
at org.jboss.ws.server.ServiceEndpointServlet.doPost(ServiceEndpointServlet.java:120)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
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.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
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)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.jboss.ws.binding.BindingException: javax.xml.bind.JAXBException: Failed to parse source: Requested element {com:vizuri:bpel:svc}firstName is not allowed in this position in the sequence
. The next element should be {com:vizuri:bpel:svc}addressLine1
at org.jboss.ws.jaxrpc.encoding.JAXBDeserializer.deserialize(JAXBDeserializer.java:108)
at org.jboss.ws.soap.SOAPContentElement.getObjectValue(SOAPContentElement.java:262)
... 27 more
Caused by: javax.xml.bind.JAXBException: Failed to parse source: Requested element {com:vizuri:bpel:svc}firstName is not allowed in this position in the sequence. The next element should be {com:vizur
i:bpel:svc}addressLine1
at org.jboss.ws.jaxb.JAXBUnmarshallerImpl.unmarshal(JAXBUnmarshallerImpl.java:82)
at org.jboss.ws.jaxrpc.encoding.JAXBDeserializer.deserialize(JAXBDeserializer.java:97)
... 28 more
Caused by: org.jboss.xb.binding.JBossXBException: Failed to parse source: Requested element {com:vizuri:bpel:svc}firstName is not allowed in this position in the sequence. The next element should be {
com:vizuri:bpel:svc}addressLine1
at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.parse(SaxJBossXBParser.java:141)
at org.jboss.xb.binding.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:127)
at org.jboss.ws.jaxb.JAXBUnmarshallerImpl.unmarshal(JAXBUnmarshallerImpl.java:78)
... 29 more
Caused by: org.jboss.xb.binding.JBossXBRuntimeException: Requested element {com:vizuri:bpel:svc}firstName is not allowed in this position in the sequence. The next element should be {com:vizuri:bpel:s
vc}addressLine1
at org.jboss.xb.binding.sunday.unmarshalling.SequenceBinding$1.startElement(SequenceBinding.java:214)
at org.jboss.xb.binding.sunday.unmarshalling.ModelGroupBinding$Cursor.startElement(ModelGroupBinding.java:151)
at org.jboss.xb.binding.sunday.unmarshalling.SundayContentHandler.startElement(SundayContentHandler.java:189)
at org.jboss.xb.binding.parser.sax.SaxJBossXBParser$DelegatingContentHandler.startElement(SaxJBossXBParser.java:299)
at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.parse(SaxJBossXBParser.java:137)
... 31 more
18:54:44,633 ERROR [StartListener] could not start process instance
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:208)
at org.jbpm.bpel.def.Receive_$$_javassist_24.accept(Receive_$$_javassist_24.java)
at org.jbpm.bpel.def.ProcessInstanceStarter.visit(ProcessInstanceStarter.java:82)
at org.jbpm.bpel.def.Sequence.accept(Sequence.java:84)
at org.jbpm.bpel.def.ProcessInstanceStarter.visit(ProcessInstanceStarter.java:29)
at org.jbpm.bpel.def.BpelDefinition.messageReceived(BpelDefinition.java:110)
at org.jbpm.bpel.relation.jms.StartListener.onMessage(StartListener.java:94)
at org.jboss.mq.SpyMessageConsumer.run(SpyMessageConsumer.java:694)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.jbpm.graph.def.DelegationException
at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:349)
at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:343)
at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:343)
at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:343)
at org.jbpm.bpel.def.Activity.enter(Activity.java:88)
at org.jbpm.graph.def.Transition.take(Transition.java:119)
at org.jbpm.graph.def.Node.leave(Node.java:382)
at org.jbpm.bpel.def.Activity.leave(Activity.java:148)
at org.jbpm.bpel.def.ProcessInstanceStarter.visit(ProcessInstanceStarter.java:43)
at org.jbpm.bpel.def.Receive.accept(Receive.java:64)
... 13 more
Caused by: org.jbpm.graph.def.DelegationException
at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:349)
at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:343)
at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:343)
at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:343)
at org.jbpm.bpel.def.Activity.enter(Activity.java:88)
at org.jbpm.graph.def.Transition.take(Transition.java:119)
at org.jbpm.graph.def.Node.leave(Node.java:382)
at org.jbpm.bpel.def.Activity.leave(Activity.java:148)
at org.jbpm.bpel.def.Assign.execute(Assign.java:41)
at org.jbpm.bpel.def.Activity.enter(Activity.java:83)
... 18 more
Caused by: org.jbpm.graph.def.DelegationException
at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:349)
at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:343)
at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:343)
at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:343)
at org.jbpm.bpel.def.Activity.enter(Activity.java:88)
at org.jbpm.graph.def.Transition.take(Transition.java:119)
at org.jbpm.graph.def.Node.leave(Node.java:382)
at org.jbpm.bpel.def.Activity.leave(Activity.java:148)
at org.jbpm.bpel.def.Invoke.execute(Invoke.java:29)
at org.jbpm.bpel.def.Activity.enter(Activity.java:83)
... 23 more
Caused by: org.jbpm.graph.def.DelegationException
at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:349)
at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:343)
at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:343)
at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:343)
at org.jbpm.bpel.def.Activity.enter(Activity.java:88)
at org.jbpm.graph.def.Transition.take(Transition.java:119)
at org.jbpm.graph.def.Node.leave(Node.java:382)
at org.jbpm.bpel.def.Activity.leave(Activity.java:148)
at org.jbpm.bpel.def.Assign.execute(Assign.java:41)
at org.jbpm.bpel.def.Activity.enter(Activity.java:83)
... 28 more
Caused by: org.jbpm.bpel.xml.BpelException: soap fault does not include a detail element
at org.jbpm.bpel.service.consumer.PortConsumer.readFault(PortConsumer.java:419)
at org.jbpm.bpel.service.consumer.PortConsumer.call(PortConsumer.java:100)
at org.jbpm.bpel.relation.jms.JmsRelationService.invoke(JmsRelationService.java:146)
at org.jbpm.bpel.def.Invoke.execute(Invoke.java:28)
at org.jbpm.bpel.def.Activity.enter(Activity.java:83)
... 33 more
If I change query="/EnrollmentMessageType_1/svc:firstName" to query="/EnrollmentMessageType_1/svc:addressLine1", it works. So I guess my question is how to access elements in a sequence other than the first element.
Thanks!