Hi Jitendra,

thanks for the attachment. Apparently the variable TestWSPLException is
never written and thus not initialized. This is causing the
selectionFailure in the 4th copy statement in the catch all. I think if you
make sure that some data is written to this variable, you should be fine.

Best,
  Tammo


On Mon, Dec 2, 2013 at 1:30 PM, Kharche, Jitendra <
[email protected]> wrote:

> Thanks Tammo for quick reply.
> Please find attached the BPEL and Web Service.
>
> Regards,
>
>
> -----Original Message-----
> From: Tammo van Lessen [mailto:[email protected]]
> Sent: Monday, December 02, 2013 5:32 PM
> To: user
> Subject: Re: Initializing fault variable
>
> Hi Jitendra,
>
> could you attach your bpel process, ideally the whole deployable? That
> would make it easier to analyze the issue. It looks like you're using an
> xpath expression in the to-spec of an assign. This only works if the
> variable is prepopulated with the XML structure.
>
> Thanks,
>   Tammo
>
>
> On Mon, Dec 2, 2013 at 11:16 AM, jk <[email protected]> wrote:
>
> > Hi,
> >
> > I have a BPEL process deployed in ODE 1.3.6 on Tomcat 7.0.42.
> > This process invokes a web service that throws an exception.
> > In the process I have used a FaultHandler having a CatchAll on that
> > invoke activity.
> > In this CatchAll, I assign 2 variables "mailSubject" and "mailMessage"
> > that I use later to send failure mail notificatrion.
> > However when the web service fault message is received I get following
> > exception on the tomcat console.
> >
> > *org.apache.ode.bpel.common.FaultException: The variable
> > TestWSPLException isn't properly initialized.*
> >
> > I have declared the variable TestWSPLException in BPEL with the
> > messageType equal to the exception thrown by the web service.
> >
> > Why ODE is not initializing the variable on receiving the fault?
> > If I explicitely initialize the variable TestWSPLException with some
> > default values, then I do not get any error on the tomcat console, but
> > the actual failure message coming from the web service in the fault is
> > lost and I get the mail with the dafault values I have set during
> > initialization of the variable.
> >
> > I am attaching both the BPEL and WebService files.
> > The complete startck trace is given below.
> >
> > 15:38:28,341 WARN  [ExternalService] Fault response:
> > faultName=WSException
> > faultType={http://testws1.ws.test.jk/}WSException
> > <?xml version="1.0" encoding="UTF-8"?>
> > <message><WSException><ns2:WSException
> > xmlns:ns2="http://testws1.ws.test.jk/";
> > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
> > "><id>0</id><message>Hel
> > per failed. Reason:
> > Failed</message></ns2:WSException></WSException></message>
> > 15:38:28,356 ERROR [JaxenContexts] bpws:getVariableValue threw
> > FaultException
> > org.apache.ode.bpel.common.FaultException: The variable
> > TestWSPLException isn't properly initialized.
> >         at
> >
> >
> org.apache.ode.bpel.runtime.ScopeFrame.fetchVariableData(ScopeFrame.java:199)
> >         at
> >
> >
> org.apache.ode.bpel.runtime.ScopeFrame.fetchVariableData(ScopeFrame.java:209)
> >         at
> >
> >
> org.apache.ode.bpel.runtime.ExprEvaluationContextImpl.readVariable(ExprEvaluationContextImpl.java:96)
> >         at
> >
> >
> org.apache.ode.bpel.elang.xpath10.runtime.JaxenContexts.getVariableValue(JaxenContexts.java:173)
> >         at
> > org.jaxen.ContextSupport.getVariableValue(ContextSupport.java:215)
> >         at org.jaxen.Context.getVariableValue(Context.java:196)
> >         at
> >
> >
> org.jaxen.expr.DefaultVariableReferenceExpr.evaluate(DefaultVariableReferenceExpr.java:106)
> >         at
> > org.jaxen.expr.DefaultPathExpr.evaluate(DefaultPathExpr.java:137)
> >         at
> >
> >
> org.jaxen.expr.DefaultFunctionCallExpr.evaluateParams(DefaultFunctionCallExpr.java:195)
> >         at
> >
> >
> org.jaxen.expr.DefaultFunctionCallExpr.evaluate(DefaultFunctionCallExpr.java:179)
> >         at
> > org.jaxen.expr.DefaultXPathExpr.asList(DefaultXPathExpr.java:102)
> >         at org.jaxen.BaseXPath.selectNodesForContext(BaseXPath.java:677)
> >         at org.jaxen.BaseXPath.selectNodes(BaseXPath.java:216)
> >         at
> >
> >
> org.apache.ode.bpel.elang.xpath10.runtime.XPath10ExpressionRuntime.evaluate(XPath10ExpressionRuntime.java:103)
> >         at
> >
> >
> org.apache.ode.bpel.runtime.ExpressionLanguageRuntimeRegistry.evaluate(ExpressionLanguageRuntimeRegistry.java:80)
> >         at org.apache.ode.bpel.runtime.ASSIGN.evalRValue(ASSIGN.java:225)
> >         at org.apache.ode.bpel.runtime.ASSIGN.copy(ASSIGN.java:399)
> >         at org.apache.ode.bpel.runtime.ASSIGN.run(ASSIGN.java:87)
> >         at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)
> >         at
> >
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> >         at java.lang.reflect.Method.invoke(Method.java:597)
> >         at
> > org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451)
> >         at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
> >         at
> >
> >
> org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:978)
> >         at
> >
> >
> org.apache.ode.bpel.engine.BpelProcess.handleJobDetails(BpelProcess.java:456)
> >         at
> >
> >
> org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:460)
> >         at
> >
> >
> org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:450)
> >         at
> >
> >
> org.apache.ode.scheduler.simple.SimpleScheduler$RunJob$1.call(SimpleScheduler.java:523)
> >         at
> >
> >
> org.apache.ode.scheduler.simple.SimpleScheduler$RunJob$1.call(SimpleScheduler.java:517)
> >         at
> >
> >
> org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:289)
> >         at
> >
> >
> org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:244)
> >         at
> >
> >
> org.apache.ode.scheduler.simple.SimpleScheduler$RunJob.call(SimpleScheduler.java:517)
> >         at
> >
> >
> org.apache.ode.scheduler.simple.SimpleScheduler$RunJob.call(SimpleScheduler.java:501)
> >         at
> > java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> >         at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> >         at
> >
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> >         at
> >
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> >         at java.lang.Thread.run(Thread.java:662)
> > TestProcess.zip
> > <http://apache-ode.996305.n3.nabble.com/file/n16976/TestProcess.zip>
> > TestWS1.war <
> > http://apache-ode.996305.n3.nabble.com/file/n16976/TestWS1.war>
> >
> >
> >
> > --
> > View this message in context:
> > http://apache-ode.996305.n3.nabble.com/Initializing-fault-variable-tp1
> > 6976.html Sent from the Apache Ode User mailing list archive at
> > Nabble.com.
> >
>
>
>
> --
> Tammo van Lessen - http://www.taval.de
>



-- 
Tammo van Lessen - http://www.taval.de

Reply via email to