Hi All, I am not able to handle the soapFault properly. Here is my sample Camel code :
onException(Exception.class).handled(true) .process(new Processor(){ public void process(Exchange exchange) throws Exception { System.out.println("From Generic Exception Handler"); } }); from("quartz://JMSScheduler?cron=0/20+*+*+*+*+?").routeId("QuartzJMSTimer") .log("Timer says it's time to work") .to("direct:fromJmsQueue"); from("direct:fromJmsQueue") .routeId(ROUTE_NAME) .pollEnrich(FROM_EVENTQUEUE_JMS) .log("Event Message read from JMS queue : ${body}") .unmarshal(jaxb) .to("bean:policyServiceSOAPRequest?method=createPolicySOAPRequest") .log("Policy Service Request : ${body}") .processRef("headerProcessor") .log("Sending Request") .to("direct:policyServiceRequest"); from("direct:policyServiceRequest") .onException(SoapFault.class) .maximumRedeliveries(0).handled(true) .log("Handling SoapFault in the route ") .process(new Processor(){ @Override public void process(Exchange exchange) throws Exception { System.out.println("From SOAPFault Handler ... "); SoapFault faultex = exchange.getProperty(Exchange.EXCEPTION_CAUGHT, SoapFault.class); logger.debug(faultex.getDetail().getTextContent()); } }) .end() .to(POLICY_WEBSERVICE_CALL) .convertBodyTo(PolicyResponse.class) .to("stream:out"); } This is throwing me the following error : 11:03:00,339 ERROR [QuartzEndpoint] Error processing exchange. Exchange[Message: [Body is null]]. Caused by: [org.quartz.JobExecutionException - org.apache.cxf.binding.soap.SoapFault: Account information cannot be found for policy number '8691885'.] 11:03:00,339 INFO [JobRunShell] Job DEFAULT.quartz-endpoint2 threw a JobExecutionException: org.quartz.JobExecutionException: org.apache.cxf.binding.soap.SoapFault: Account information cannot be found for policy number '8691885'. [See nested exception: org.apache.cxf.binding.soap.SoapFault: Account information cannot be found for policy number '8691885'.] at org.apache.camel.component.quartz.QuartzEndpoint.onJobExecute(QuartzEndpoint.java:117) at org.apache.camel.component.quartz.CamelJob.execute(CamelJob.java:54) at org.quartz.core.JobRunShell.run(JobRunShell.java:216) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549) Caused by: org.apache.cxf.binding.soap.SoapFault: Account information cannot be found for '8691885'. at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.unmarshalFault(Soap11FaultInInterceptor.java:75) at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:46) at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:35) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271) at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:114) at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:69) at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:34) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271) at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:782) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1590) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream$1.run(HTTPConduit.java:1121) at org.apache.cxf.workqueue.AutomaticWorkQueueImpl$3.run(AutomaticWorkQueueImpl.java:426) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at org.apache.cxf.workqueue.AutomaticWorkQueueImpl$AWQThreadFactory$1.run(AutomaticWorkQueueImpl.java:351) at java.lang.Thread.run(Thread.java:662) I am seeing the soapFault. But is wrapped inside a org.quartz.JobExecutionException. Why is that so? My quartz job is just to invoke the next route. Are all routes that follows the quartz component considered part of the quartz job ? In my case, what all routes are considered part of the quartz job? How can I handle soap Fault in my case ? I am not seeing any logs from the global exception as well? Am I doing something wrong here? Please help. Sri Harsha Y. -- View this message in context: http://camel.465427.n5.nabble.com/Issue-with-Handling-SoapFault-tp5730718.html Sent from the Camel - Users mailing list archive at Nabble.com.