Alex,

Thanks for the reply.  I tried defining the variable in the enclosing scope and 
then referencing it in the faultHandler by faultVariable, but I ran into a 
dilemma.  If I try to deploy the definition with the faultVariable specified in 
the faultHandler, I am getting the following exception:


  | 10:05:41,967 ERROR [[DeployServlet]] Servlet.service() for servlet 
DeployServlet threw exception
  | org.jbpm.jpdl.JpdlException: [[ERROR] jbpmbpel.bpel catch must specify 
either a faultMessageType or a faultElement [/process/faultHandlers/catch]]
  |         at 
org.jbpm.jpdl.par.ProcessArchive.parseProcessDefinition(ProcessArchive.java:84)
  |         at 
org.jbpm.bpel.web.deploy.DeployServlet.doGet(DeployServlet.java:49)
  |         at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
  |         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)
  | 

Then I added 'faultElement' in the 'catch', I am getting the following 
exception:

  | 09:28:51,999 ERROR [[DeployServlet]] Servlet.service() for servlet 
DeployServlet threw exception
  | org.jbpm.jpdl.JpdlException: [[ERROR] jbpmbpel.bpel(36) 
cvc-complex-type.3.2.2: Attribute 'faultElement' is not allowed to appear in 
element 'catch'.]
  |         at 
org.jbpm.jpdl.par.ProcessArchive.parseProcessDefinition(ProcessArchive.java:84)
  |         at 
org.jbpm.bpel.web.deploy.DeployServlet.doGet(DeployServlet.java:49)
  |         at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
  |         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)
  | 

Below is my code:


  | <?xml version="1.0" encoding="UTF-8"?>
  | <process name="jbpmbpelFrontEnd" targetNamespace="com:vizuri:bpel:jbpmbpel"
  |   xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/";
  |   xmlns:tns="com:vizuri:bpel:jbpmbpel" 
xmlns:jbpmbpel="com:vizuri:bpel:jbpmbpel" xmlns:typ="com:vizuri:bpel:types"
  |   xmlns:svc="http://webservice.vizuri.com/jaws"; 
xmlns:svc2="http://webservice.vizuri.com/jaws";
  |   xmlns:bpel="http://schemas.xmlsoap.org/ws/2003/03/business-process/";
  |   xmlns:xsd="http://www.w3.org/2001/XMLSchema";
  |   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
  |   
xsi:schemaLocation="http://schemas.xmlsoap.org/ws/2003/03/business-process/
  |    http://schemas.xmlsoap.org/ws/2003/03/business-process/";>
  | 
  |   <variables>
  |     <variable name="operationFlt" messageType="jbpmbpel:operationFault" />
  |     <variable name="svcFlt" element="svc:JSR181WebServiceException" />
  |   </variables>
  | <faultHandlers>
  |        <catch faultName="svc:JSR181WebServiceException" 
faultVariable="svcFlt">
  |             <sequence>
  |                     <assign name="copyStep2Fault">
  |                             <copy>
  |                             <from variable="svcFlt" 
query="/JSR181WebServiceException/svc:code"/>
  |                             <to variable="operationFlt" part="detail"/>
  |                             </copy>      
  |             </assign>
  |             <reply operation="connect2" partnerLink="jbpmbpelRelation" 
portType="jbpmbpel:jbpmbpelFrontEnd"
  |                       variable="operationFlt" 
faultName="jbpmbpel:step2Fault" />
  |             </sequence>
  |        </catch>
  |   </faultHandlers>
  | </process>
  | 

I understand that adding 'faultElement' in catch causes problem because bpel 
1.1 schema doesn't allow it, but why do I get the first exception when I don't 
have faultElement or faultMessageType in catch?

Jiehuan

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3958474#3958474

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3958474
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to