You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by "Kazi, Iftekhar" <Ka...@UPMC.EDU> on 2010/12/14 21:05:36 UTC

CXF+REST+Camel Routes

Hi,

  Am a newbie and have some problems with the cxf endpoint in a Camel Route. Have created JAXB object definitions using xjc and created a REST Interface using cxf. When I deploy the implementation in Camel and use the code as outlined in the Part 4 of the ReportIncident Tutorial [using a producer to send a message to direct:start], all works well. However, when trying to use cxfrs as defined in the cxfrs tutorial/page, I get a Null pointer exception.

   Is there an example for implementing REST routes in camel ? I need to proxy a REST Web Service to receive the message, enrich it and then send it on to a external SOAP Web Service and enrich the message along the way. Any help will be appreciated. Thanks





Re: CXF+REST+Camel Routes

Posted by Willem Jiang <wi...@gmail.com>.
Hi,

You need to set the cxfrs endpoint's service class with a class name 
instead of interface name.
As you know JAXRS server need to instantiate the resource class when it 
server the request.

Please change your camel route like this.
<from 
uri="cxfrs://bean:rsServer?serviceClass=edu.testco.sc.web.XISCheckHealthInterfaceImpl" 
/>


On 12/16/10 2:13 AM, Kazi, Iftekhar wrote:
> Sorry about that : Here is more information
>
> Camel version 2.5
> CXF Version 2.3
> JDK Version 1.6.2
>
> ============================
> Interface :
> ============================
> package edu.testco.sc.web;
> import javax.ws.rs.Path;
> import javax.ws.rs.POST;
> import javax.ws.rs.Produces;
> import javax.ws.rs.Consumes;
>
> import org.apache.camel.Exchange;
>
> @Path("/xis")
> @Produces("text/xml")
> @Consumes("text/xml")
> public interface XISCheckHealthInterface {
>
> 	
> 	@POST
> 	@Path("/CheckHealth")
> 	public TestcoCheckHealthResponse checkHealth (TestcoCheckHealthRequest checkHealthRequest);
>
> }
>
> ============================
> Implementation :
> ============================
> package edu.testco.sc.web;
>
> import java.text.DateFormat;
> import java.text.SimpleDateFormat;
> import java.util.Calendar;
> import org.apache.camel.CamelContext;
> import org.apache.camel.Exchange;
> import org.apache.camel.ExchangePattern;
> import org.apache.camel.ProducerTemplate;
> import org.apache.camel.impl.DefaultCamelContext;
>
> public class XISCheckHealthInterfaceImpl implements XISCheckHealthInterface {
> 	private TestcoCheckHealthResponse checkHealthResponse;
> 	private CamelContext context;
>
> 	public void setContext(CamelContext context) {
> 		this.context = context;
> 	}
>
> 	public TestcoCheckHealthResponse checkHealth(TestcoCheckHealthRequest checkHealthRequest) {
> 		
> 			return null;
> 	}
> }
> ============================
> Web Test Client :
> ============================
> package edu.testco.sc.web;
> import org.apache.cxf.jaxrs.client.JAXRSClientFactory;
> import org.apache.cxf.jaxrs.client.WebClient;
> import javax.ws.rs.core.Response;
> import javax.servlet.http.HttpServletRequest;
> import javax.servlet.http.HttpServletResponse;
>
>
>
>
> public class TestWebClient {
>
> 	public static void main(String[] args) {
> 		TestcoCheckHealthRequest req = new  TestcoCheckHealthRequest();
> 		HdiCredentials cred = new HdiCredentials();
> 		cred.setCredentialName("Crential Name");
> 		cred.setHdiToken("TokenValue");
> 		req.setCredentials(cred);
> 		req.setNote("This is a Test");
>
> 		XISCheckHealthInterface proxy = JAXRSClientFactory.create("http://localhost:8080/App/web/proxy", XISCheckHealthInterface.class);
> 		WebClient.client(proxy).type("text/xml").accept("text/xml");
> 		TestcoCheckHealthResponse res = proxy.checkHealth(req);
> 		System.out.println("Response : "+res.getLastActionMessage()+":"+res.healthStatus);
> 	}
>
> }
>
> ============================
> Route/ApplicationContext.xml
> ============================
> <beans xmlns="http://www.springframework.org/schema/beans"
> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cxf="http://camel.apache.org/schema/cxf"
> 	xmlns:jaxrs="http://cxf.apache.org/jaxrs" xmlns:soap="http://cxf.apache.org/bindings/soap"
> 	xmlns:util="http://www.springframework.org/schema/util"
> 	xsi:schemaLocation="
>         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
>         http://camel.apache.org/schema/cxf http://camel.apache.org/schema/cxf/camel-cxf.xsd
>         http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd
>         http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
>         http://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd
>         http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
>
> 	<import resource="classpath:META-INF/cxf/cxf.xml" />
> 	<import resource="classpath:META-INF/cxf/cxf-extension-http.xml" />
> 	<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
> 	<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
>
> 	<cxf:rsServer id="rsServer" address="/proxy"
> 		serviceClass="edu.testco.sc.web.XISCheckHealthInterfaceImpl" staticSubresourceResolution="false"/>
>
> 	<bean id="checkHealthProcessor" class="edu.testco.sc.web.XISCheckHealthProcessor" />
>
> 	<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
> 		<route>
> 			<from uri="cxfrs://bean:rsServer?serviceClass=edu.testco.sc.web.XISCheckHealthInterface" />
> 			<setHeader headerName="CamelCxfRsUsingHttpAPI">
> 				<constant>false</constant>
> 			</setHeader>
> 			<process ref="checkHealthProcessor" />
> 			<to uri="log:input" />
> 			<to uri="file:F:\Camel-Router-CheckHealth" />
> 			<to uri="log:output" />
> 		</route>
> 	</camelContext>
>
> </beans>
>
>
>
> ============================
> Error Message :
> ============================
>
> Dec 15, 2010 8:58:08 AM org.apache.catalina.startup.Catalina start
> INFO: Server startup in 3401 ms
> [                   http-8080-1] PhaseInterceptorChain          WARN  Application {http://web.sc.testco.edu/}XISCheckHealthInterfaceImpl has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: null while invoking public edu.testco.sc.web.TestcoCheckHealthResponse edu.testco.sc.web.XISCheckHealthInterfaceImpl.checkHealth(edu.testco.sc.web.TestcoCh
> ckHealthRequest) with params [edu.testco.sc.web.TestcoCheckHealthRequest@280c3c44].
>          at org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:159)[cxf-rt-core-2.3.0.jar:2.3.0]
>          at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:133)[cxf-rt-core-2.3.0.jar:2.3.0]
>          at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:133)[cxf-rt-frontend-jaxrs-2.3.0.jar:2.3.0]
>          at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:82)[cxf-rt-frontend-jaxrs-2.3.0.jar:2.3.0]
>          at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)[cxf-rt-core-2.3.0.jar:2.3.0]
>          at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6.0_21]
>          at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_21]
>          at java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_21]
>          at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)[cxf-rt-core-2.3.0.jar:2.3.0]
>          at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)[cxf-rt-core-2.3.0.jar:2.3.0]
>          at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:247)[cxf-api-2.3.0.jar:2.3.0]
>          at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113)[cxf-rt-core-2.3.0.jar:2.3.0]
>          at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:97)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
>          at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:458)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
>          at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:146)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
>          at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:148)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
>          at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
>          at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:103)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
>          at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)[servlet-api.jar:]
>          at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
>          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)[catalina.jar:6.0.29]
>          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)[catalina.jar:6.0.29]
>          at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)[catalina.jar:6.0.29]
>          at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)[catalina.jar:6.0.29]
>          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)[catalina.jar:6.0.29]
>          at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)[catalina.jar:6.0.29]
>          at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)[catalina.jar:6.0.29]
>          at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)[catalina.jar:6.0.29]
>          at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861)[tomcat-coyote.jar:6.0.29]
>          at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)[tomcat-coyote.jar:6.0.29]
>          at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584)[tomcat-coyote.jar:6.0.29]
>          at java.lang.Thread.run(Thread.java:619)[:1.6.0_21]
> [                   http-8080-1] PhaseInterceptorChain          WARN  Application {http://web.sc.testco.edu/}XISCheckHealthInterfaceImpl has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: null while invoking public edu.testco.sc.web.TestcoCheckHealthResponse edu.testco.sc.web.XISCheckHealthInterfaceImpl.checkHealth(edu.testco.sc.web.TestcoCh
> ckHealthRequest) with params [edu.testco.sc.web.TestcoCheckHealthRequest@280c3c44].
>          at org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:159)[cxf-rt-core-2.3.0.jar:2.3.0]
>          at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:133)[cxf-rt-core-2.3.0.jar:2.3.0]
>          at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:133)[cxf-rt-frontend-jaxrs-2.3.0.jar:2.3.0]
>          at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:82)[cxf-rt-frontend-jaxrs-2.3.0.jar:2.3.0]
>          at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)[cxf-rt-core-2.3.0.jar:2.3.0]
>          at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6.0_21]
>          at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_21]
>          at java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_21]
>          at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)[cxf-rt-core-2.3.0.jar:2.3.0]
>          at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)[cxf-rt-core-2.3.0.jar:2.3.0]
>          at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:247)[cxf-api-2.3.0.jar:2.3.0]
>          at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113)[cxf-rt-core-2.3.0.jar:2.3.0]
>          at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:97)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
>          at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:458)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
>          at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:146)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
>          at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:148)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
>          at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
>          at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:103)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
>          at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)[servlet-api.jar:]
>          at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
>          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)[catalina.jar:6.0.29]
>          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)[catalina.jar:6.0.29]
>          at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)[catalina.jar:6.0.29]
>          at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)[catalina.jar:6.0.29]
>          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)[catalina.jar:6.0.29]
>          at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)[catalina.jar:6.0.29]
>          at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)[catalina.jar:6.0.29]
>          at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)[catalina.jar:6.0.29]
>          at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861)[tomcat-coyote.jar:6.0.29]
>          at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)[tomcat-coyote.jar:6.0.29]
>          at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584)[tomcat-coyote.jar:6.0.29]
>          at java.lang.Thread.run(Thread.java:619)[:1.6.0_21]
> [                   http-8080-1] PhaseInterceptorChain          WARN  Exception in handleFault on interceptor org.apache.cxf.binding.xml.interceptor.XMLFaultOutInterceptor@30394ff
>
> org.apache.cxf.interceptor.Fault: null while invoking public edu.testco.sc.web.TestcoCheckHealthResponse edu.testco.sc.web.XISCheckHealthInterfaceImpl.checkHealth(edu.testco.sc.web.TestcoCh
> ckHealthRequest) with params [edu.testco.sc.web.TestcoCheckHealthRequest@280c3c44].
>          at org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:159)[cxf-rt-core-2.3.0.jar:2.3.0]
>          at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:133)[cxf-rt-core-2.3.0.jar:2.3.0]
>          at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:133)[cxf-rt-frontend-jaxrs-2.3.0.jar:2.3.0]
>          at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:82)[cxf-rt-frontend-jaxrs-2.3.0.jar:2.3.0]
>          at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)[cxf-rt-core-2.3.0.jar:2.3.0]
>          at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6.0_21]
>          at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_21]
>          at java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_21]
>          at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)[cxf-rt-core-2.3.0.jar:2.3.0]
>          at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)[cxf-rt-core-2.3.0.jar:2.3.0]
>          at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:247)[cxf-api-2.3.0.jar:2.3.0]
>          at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113)[cxf-rt-core-2.3.0.jar:2.3.0]
>          at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:97)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
>          at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:458)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
>          at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:146)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
>          at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:148)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
>          at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
>          at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:103)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
>          at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)[servlet-api.jar:]
>          at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
>          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)[catalina.jar:6.0.29]
>          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)[catalina.jar:6.0.29]
>          at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)[catalina.jar:6.0.29]
>          at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)[catalina.jar:6.0.29]
>          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)[catalina.jar:6.0.29]
>          at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)[catalina.jar:6.0.29]
>          at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)[catalina.jar:6.0.29]
>          at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)[catalina.jar:6.0.29]
>          at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861)[tomcat-coyote.jar:6.0.29]
>          at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)[tomcat-coyote.jar:6.0.29]
>          at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584)[tomcat-coyote.jar:6.0.29]
>          at java.lang.Thread.run(Thread.java:619)[:1.6.0_21]
> [                   http-8080-1] actFaultChainInitiatorObserver ERROR Error occurred during error handling, give up!
> org.apache.cxf.interceptor.Fault: null while invoking public edu.testco.sc.web.TestcoCheckHealthResponse edu.testco.sc.web.XISCheckHealthInterfaceImpl.checkHealth(edu.testco.sc.web.TestcoCh
> ckHealthRequest) with params [edu.testco.sc.web.TestcoCheckHealthRequest@280c3c44].
>          at org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:159)[cxf-rt-core-2.3.0.jar:2.3.0]
>          at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:133)[cxf-rt-core-2.3.0.jar:2.3.0]
>          at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:133)[cxf-rt-frontend-jaxrs-2.3.0.jar:2.3.0]
>          at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:82)[cxf-rt-frontend-jaxrs-2.3.0.jar:2.3.0]
>          at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)[cxf-rt-core-2.3.0.jar:2.3.0]
>          at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6.0_21]
>          at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_21]
>          at java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_21]
>          at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)[cxf-rt-core-2.3.0.jar:2.3.0]
>          at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)[cxf-rt-core-2.3.0.jar:2.3.0]
>          at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:247)[cxf-api-2.3.0.jar:2.3.0]
>          at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113)[cxf-rt-core-2.3.0.jar:2.3.0]
>          at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:97)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
>          at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:458)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
>          at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:146)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
>          at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:148)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
>          at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
>          at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:103)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
>          at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)[servlet-api.jar:]
>          at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
>          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)[catalina.jar:6.0.29]
>          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)[catalina.jar:6.0.29]
>          at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)[catalina.jar:6.0.29]
>          at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)[catalina.jar:6.0.29]
>          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)[catalina.jar:6.0.29]
>          at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)[catalina.jar:6.0.29]
>          at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)[catalina.jar:6.0.29]
>          at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)[catalina.jar:6.0.29]
>          at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861)[tomcat-coyote.jar:6.0.29]
>          at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)[tomcat-coyote.jar:6.0.29]
>          at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584)[tomcat-coyote.jar:6.0.29]
>          at java.lang.Thread.run(Thread.java:619)[:1.6.0_21]
>
> -----Original Message-----
> From: Claus Ibsen [mailto:claus.ibsen@gmail.com]
> Sent: Wednesday, December 15, 2010 5:39 AM
> To: users@camel.apache.org
> Subject: Re: CXF+REST+Camel Routes
>
> You will get better help if you list details such as Camel version used, JDK version, What framework you use for REST etc.
> And post the stacktrace.
>
>
> On Tue, Dec 14, 2010 at 9:05 PM, Kazi, Iftekhar<Ka...@upmc.edu>  wrote:
>> Hi,
>>
>>   Am a newbie and have some problems with the cxf endpoint in a Camel Route. Have created JAXB object definitions using xjc and created a REST Interface using cxf. When I deploy the implementation in Camel and use the code as outlined in the Part 4 of the ReportIncident Tutorial [using a producer to send a message to direct:start], all works well. However, when trying to use cxfrs as defined in the cxfrs tutorial/page, I get a Null pointer exception.
>>
>>    Is there an example for implementing REST routes in camel ? I need
>> to proxy a REST Web Service to receive the message, enrich it and then
>> send it on to a external SOAP Web Service and enrich the message along
>> the way. Any help will be appreciated. Thanks
>>
>>
>>
>>
>>
>
>
>
> --
> Claus Ibsen
> -----------------
> FuseSource
> Email: cibsen@fusesource.com
> Web: http://fusesource.com
> Twitter: davsclaus
> Blog: http://davsclaus.blogspot.com/
> Author of Camel in Action: http://www.manning.com/ibsen/
>
>


-- 
Willem
----------------------------------
FuseSource
Web: http://www.fusesource.com
Blog:    http://willemjiang.blogspot.com (English)
          http://jnn.javaeye.com (Chinese)
Twitter: willemjiang

RE: CXF+REST+Camel Routes

Posted by "Kazi, Iftekhar" <Ka...@UPMC.EDU>.
Sorry about that : Here is more information

Camel version 2.5
CXF Version 2.3
JDK Version 1.6.2

============================
Interface :
============================
package edu.testco.sc.web;
import javax.ws.rs.Path;
import javax.ws.rs.POST;
import javax.ws.rs.Produces;
import javax.ws.rs.Consumes;

import org.apache.camel.Exchange;

@Path("/xis")
@Produces("text/xml")
@Consumes("text/xml")
public interface XISCheckHealthInterface {

	
	@POST
	@Path("/CheckHealth")
	public TestcoCheckHealthResponse checkHealth (TestcoCheckHealthRequest checkHealthRequest);

}

============================
Implementation :
============================
package edu.testco.sc.web;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.ExchangePattern;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.impl.DefaultCamelContext;

public class XISCheckHealthInterfaceImpl implements XISCheckHealthInterface {
	private TestcoCheckHealthResponse checkHealthResponse;
	private CamelContext context;

	public void setContext(CamelContext context) {
		this.context = context;
	}

	public TestcoCheckHealthResponse checkHealth(TestcoCheckHealthRequest checkHealthRequest) {
		
			return null;
	}
}
============================
Web Test Client :
============================
package edu.testco.sc.web;
import org.apache.cxf.jaxrs.client.JAXRSClientFactory;
import org.apache.cxf.jaxrs.client.WebClient;
import javax.ws.rs.core.Response;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;




public class TestWebClient {

	public static void main(String[] args) {
		TestcoCheckHealthRequest req = new  TestcoCheckHealthRequest();
		HdiCredentials cred = new HdiCredentials();
		cred.setCredentialName("Crential Name");
		cred.setHdiToken("TokenValue");
		req.setCredentials(cred);
		req.setNote("This is a Test");

		XISCheckHealthInterface proxy = JAXRSClientFactory.create("http://localhost:8080/App/web/proxy", XISCheckHealthInterface.class);
		WebClient.client(proxy).type("text/xml").accept("text/xml");
		TestcoCheckHealthResponse res = proxy.checkHealth(req);
		System.out.println("Response : "+res.getLastActionMessage()+":"+res.healthStatus);
	}

}

============================
Route/ApplicationContext.xml
============================
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cxf="http://camel.apache.org/schema/cxf"
	xmlns:jaxrs="http://cxf.apache.org/jaxrs" xmlns:soap="http://cxf.apache.org/bindings/soap"
	xmlns:util="http://www.springframework.org/schema/util"
	xsi:schemaLocation="
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://camel.apache.org/schema/cxf http://camel.apache.org/schema/cxf/camel-cxf.xsd
       http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd
       http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
       http://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd 
       http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">

	<import resource="classpath:META-INF/cxf/cxf.xml" />
	<import resource="classpath:META-INF/cxf/cxf-extension-http.xml" />
	<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
	<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />

	<cxf:rsServer id="rsServer" address="/proxy"
		serviceClass="edu.testco.sc.web.XISCheckHealthInterfaceImpl" staticSubresourceResolution="false"/>

	<bean id="checkHealthProcessor" class="edu.testco.sc.web.XISCheckHealthProcessor" />

	<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
		<route>
			<from uri="cxfrs://bean:rsServer?serviceClass=edu.testco.sc.web.XISCheckHealthInterface" />
			<setHeader headerName="CamelCxfRsUsingHttpAPI">
				<constant>false</constant>
			</setHeader>
			<process ref="checkHealthProcessor" />
			<to uri="log:input" />
			<to uri="file:F:\Camel-Router-CheckHealth" />
			<to uri="log:output" />
		</route>
	</camelContext>

</beans>



============================
Error Message :
============================

Dec 15, 2010 8:58:08 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 3401 ms
[                   http-8080-1] PhaseInterceptorChain          WARN  Application {http://web.sc.testco.edu/}XISCheckHealthInterfaceImpl has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: null while invoking public edu.testco.sc.web.TestcoCheckHealthResponse edu.testco.sc.web.XISCheckHealthInterfaceImpl.checkHealth(edu.testco.sc.web.TestcoCh
ckHealthRequest) with params [edu.testco.sc.web.TestcoCheckHealthRequest@280c3c44].
        at org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:159)[cxf-rt-core-2.3.0.jar:2.3.0]
        at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:133)[cxf-rt-core-2.3.0.jar:2.3.0]
        at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:133)[cxf-rt-frontend-jaxrs-2.3.0.jar:2.3.0]
        at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:82)[cxf-rt-frontend-jaxrs-2.3.0.jar:2.3.0]
        at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)[cxf-rt-core-2.3.0.jar:2.3.0]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6.0_21]
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_21]
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_21]
        at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)[cxf-rt-core-2.3.0.jar:2.3.0]
        at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)[cxf-rt-core-2.3.0.jar:2.3.0]
        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:247)[cxf-api-2.3.0.jar:2.3.0]
        at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113)[cxf-rt-core-2.3.0.jar:2.3.0]
        at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:97)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
        at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:458)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
        at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:146)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
        at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:148)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:103)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)[servlet-api.jar:]
        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)[catalina.jar:6.0.29]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)[catalina.jar:6.0.29]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)[catalina.jar:6.0.29]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)[catalina.jar:6.0.29]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)[catalina.jar:6.0.29]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)[catalina.jar:6.0.29]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)[catalina.jar:6.0.29]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)[catalina.jar:6.0.29]
        at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861)[tomcat-coyote.jar:6.0.29]
        at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)[tomcat-coyote.jar:6.0.29]
        at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584)[tomcat-coyote.jar:6.0.29]
        at java.lang.Thread.run(Thread.java:619)[:1.6.0_21]
[                   http-8080-1] PhaseInterceptorChain          WARN  Application {http://web.sc.testco.edu/}XISCheckHealthInterfaceImpl has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: null while invoking public edu.testco.sc.web.TestcoCheckHealthResponse edu.testco.sc.web.XISCheckHealthInterfaceImpl.checkHealth(edu.testco.sc.web.TestcoCh
ckHealthRequest) with params [edu.testco.sc.web.TestcoCheckHealthRequest@280c3c44].
        at org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:159)[cxf-rt-core-2.3.0.jar:2.3.0]
        at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:133)[cxf-rt-core-2.3.0.jar:2.3.0]
        at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:133)[cxf-rt-frontend-jaxrs-2.3.0.jar:2.3.0]
        at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:82)[cxf-rt-frontend-jaxrs-2.3.0.jar:2.3.0]
        at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)[cxf-rt-core-2.3.0.jar:2.3.0]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6.0_21]
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_21]
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_21]
        at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)[cxf-rt-core-2.3.0.jar:2.3.0]
        at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)[cxf-rt-core-2.3.0.jar:2.3.0]
        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:247)[cxf-api-2.3.0.jar:2.3.0]
        at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113)[cxf-rt-core-2.3.0.jar:2.3.0]
        at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:97)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
        at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:458)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
        at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:146)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
        at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:148)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:103)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)[servlet-api.jar:]
        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)[catalina.jar:6.0.29]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)[catalina.jar:6.0.29]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)[catalina.jar:6.0.29]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)[catalina.jar:6.0.29]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)[catalina.jar:6.0.29]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)[catalina.jar:6.0.29]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)[catalina.jar:6.0.29]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)[catalina.jar:6.0.29]
        at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861)[tomcat-coyote.jar:6.0.29]
        at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)[tomcat-coyote.jar:6.0.29]
        at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584)[tomcat-coyote.jar:6.0.29]
        at java.lang.Thread.run(Thread.java:619)[:1.6.0_21]
[                   http-8080-1] PhaseInterceptorChain          WARN  Exception in handleFault on interceptor org.apache.cxf.binding.xml.interceptor.XMLFaultOutInterceptor@30394ff

org.apache.cxf.interceptor.Fault: null while invoking public edu.testco.sc.web.TestcoCheckHealthResponse edu.testco.sc.web.XISCheckHealthInterfaceImpl.checkHealth(edu.testco.sc.web.TestcoCh
ckHealthRequest) with params [edu.testco.sc.web.TestcoCheckHealthRequest@280c3c44].
        at org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:159)[cxf-rt-core-2.3.0.jar:2.3.0]
        at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:133)[cxf-rt-core-2.3.0.jar:2.3.0]
        at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:133)[cxf-rt-frontend-jaxrs-2.3.0.jar:2.3.0]
        at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:82)[cxf-rt-frontend-jaxrs-2.3.0.jar:2.3.0]
        at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)[cxf-rt-core-2.3.0.jar:2.3.0]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6.0_21]
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_21]
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_21]
        at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)[cxf-rt-core-2.3.0.jar:2.3.0]
        at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)[cxf-rt-core-2.3.0.jar:2.3.0]
        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:247)[cxf-api-2.3.0.jar:2.3.0]
        at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113)[cxf-rt-core-2.3.0.jar:2.3.0]
        at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:97)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
        at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:458)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
        at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:146)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
        at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:148)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:103)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)[servlet-api.jar:]
        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)[catalina.jar:6.0.29]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)[catalina.jar:6.0.29]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)[catalina.jar:6.0.29]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)[catalina.jar:6.0.29]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)[catalina.jar:6.0.29]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)[catalina.jar:6.0.29]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)[catalina.jar:6.0.29]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)[catalina.jar:6.0.29]
        at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861)[tomcat-coyote.jar:6.0.29]
        at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)[tomcat-coyote.jar:6.0.29]
        at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584)[tomcat-coyote.jar:6.0.29]
        at java.lang.Thread.run(Thread.java:619)[:1.6.0_21]
[                   http-8080-1] actFaultChainInitiatorObserver ERROR Error occurred during error handling, give up!
org.apache.cxf.interceptor.Fault: null while invoking public edu.testco.sc.web.TestcoCheckHealthResponse edu.testco.sc.web.XISCheckHealthInterfaceImpl.checkHealth(edu.testco.sc.web.TestcoCh
ckHealthRequest) with params [edu.testco.sc.web.TestcoCheckHealthRequest@280c3c44].
        at org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:159)[cxf-rt-core-2.3.0.jar:2.3.0]
        at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:133)[cxf-rt-core-2.3.0.jar:2.3.0]
        at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:133)[cxf-rt-frontend-jaxrs-2.3.0.jar:2.3.0]
        at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:82)[cxf-rt-frontend-jaxrs-2.3.0.jar:2.3.0]
        at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)[cxf-rt-core-2.3.0.jar:2.3.0]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6.0_21]
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_21]
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_21]
        at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)[cxf-rt-core-2.3.0.jar:2.3.0]
        at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)[cxf-rt-core-2.3.0.jar:2.3.0]
        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:247)[cxf-api-2.3.0.jar:2.3.0]
        at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113)[cxf-rt-core-2.3.0.jar:2.3.0]
        at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:97)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
        at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:458)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
        at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:146)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
        at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:148)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:103)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)[servlet-api.jar:]
        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159)[cxf-rt-transports-http-2.3.0.jar:2.3.0]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)[catalina.jar:6.0.29]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)[catalina.jar:6.0.29]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)[catalina.jar:6.0.29]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)[catalina.jar:6.0.29]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)[catalina.jar:6.0.29]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)[catalina.jar:6.0.29]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)[catalina.jar:6.0.29]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)[catalina.jar:6.0.29]
        at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861)[tomcat-coyote.jar:6.0.29]
        at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)[tomcat-coyote.jar:6.0.29]
        at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584)[tomcat-coyote.jar:6.0.29]
        at java.lang.Thread.run(Thread.java:619)[:1.6.0_21]

-----Original Message-----
From: Claus Ibsen [mailto:claus.ibsen@gmail.com] 
Sent: Wednesday, December 15, 2010 5:39 AM
To: users@camel.apache.org
Subject: Re: CXF+REST+Camel Routes

You will get better help if you list details such as Camel version used, JDK version, What framework you use for REST etc.
And post the stacktrace.


On Tue, Dec 14, 2010 at 9:05 PM, Kazi, Iftekhar <Ka...@upmc.edu> wrote:
> Hi,
>
>  Am a newbie and have some problems with the cxf endpoint in a Camel Route. Have created JAXB object definitions using xjc and created a REST Interface using cxf. When I deploy the implementation in Camel and use the code as outlined in the Part 4 of the ReportIncident Tutorial [using a producer to send a message to direct:start], all works well. However, when trying to use cxfrs as defined in the cxfrs tutorial/page, I get a Null pointer exception.
>
>   Is there an example for implementing REST routes in camel ? I need 
> to proxy a REST Web Service to receive the message, enrich it and then 
> send it on to a external SOAP Web Service and enrich the message along 
> the way. Any help will be appreciated. Thanks
>
>
>
>
>



--
Claus Ibsen
-----------------
FuseSource
Email: cibsen@fusesource.com
Web: http://fusesource.com
Twitter: davsclaus
Blog: http://davsclaus.blogspot.com/
Author of Camel in Action: http://www.manning.com/ibsen/


Re: CXF+REST+Camel Routes

Posted by Claus Ibsen <cl...@gmail.com>.
You will get better help if you list details such as Camel version
used, JDK version, What framework you use for REST etc.
And post the stacktrace.


On Tue, Dec 14, 2010 at 9:05 PM, Kazi, Iftekhar <Ka...@upmc.edu> wrote:
> Hi,
>
>  Am a newbie and have some problems with the cxf endpoint in a Camel Route. Have created JAXB object definitions using xjc and created a REST Interface using cxf. When I deploy the implementation in Camel and use the code as outlined in the Part 4 of the ReportIncident Tutorial [using a producer to send a message to direct:start], all works well. However, when trying to use cxfrs as defined in the cxfrs tutorial/page, I get a Null pointer exception.
>
>   Is there an example for implementing REST routes in camel ? I need to proxy a REST Web Service to receive the message, enrich it and then send it on to a external SOAP Web Service and enrich the message along the way. Any help will be appreciated. Thanks
>
>
>
>
>



-- 
Claus Ibsen
-----------------
FuseSource
Email: cibsen@fusesource.com
Web: http://fusesource.com
Twitter: davsclaus
Blog: http://davsclaus.blogspot.com/
Author of Camel in Action: http://www.manning.com/ibsen/

Re: CXF+REST+Camel Routes

Posted by Willem Jiang <wi...@gmail.com>.
On 12/15/10 4:05 AM, Kazi, Iftekhar wrote:
> Hi,
>
> Am a newbie and have some problems with the cxf endpoint in a Camel
> Route. Have created JAXB object definitions using xjc and created a
> REST Interface using cxf. When I deploy the implementation in Camel
> and use the code as outlined in the Part 4 of the ReportIncident
> Tutorial [using a producer to send a message to direct:start], all
> works well. However, when trying to use cxfrs as defined in the cxfrs
> tutorial/page, I get a Null pointer exception.
Can you show me the stack trace and you camel route ?
>
> Is there an example for implementing REST routes in camel ? I need to
> proxy a REST Web Service to receive the message, enrich it and then
> send it on to a external SOAP Web Service and enrich the message
> along the way. Any help will be appreciated. Thanks
>
AS CXF support JAXWS and JAXRS at the same time, it should not be 
difficult to convert a REST request into a SOAP request if they are 
share the same SEI.

But if you want to create a common REST proxy do this job, I don't think 
current CXFRS and CXF component can meet with your requirement.

-- 
Willem
----------------------------------
FuseSource
Web: http://www.fusesource.com
Blog:    http://willemjiang.blogspot.com (English)
          http://jnn.javaeye.com (Chinese)
Twitter: willemjiang