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