Hi

On 24/07/12 14:47, hom wrote:
I managed to wire up the bus to the endpoint by adding bus="tb" to the bus
element.

But now I get a NullPointerException. It seems that the
TransformInInterceptor has problems transformig the message. Here is the
stack trace:

I apologize, I did not give you enough info.

Basically, Jettison-based provider is not capable of reading from the regular XMLStreamReaders that the transform feature creates; the provider creates its on Jettison mapped stream reader which attempts to parse the sequence, and such - and all the customization which we can do is done at the top of that JSON reader. Using the feature works with XML-based providers or even with Jettison on the outbound side, but to do this kind of conversion on the inbound side, one has to explicitly configure JSONProvider, as suggested here:

http://cxf.apache.org/docs/jax-rs-data-bindings.html#JAX-RSDataBindings-CustomizingJAXBXMLandJSONinputandoutput

The provider then needs to be registered directly with the rs endpoint

Cheers, Sergey

2012-07-24 15:30:57,905 | DEBUG | er/v1/json/doit/ | PhaseInterceptorChain
| .cxf.phase.PhaseInterceptorChain  674 | 119 - org.apache.cxf.cxf-api -
2.6.1 | Chain org.apache.cxf.phase.PhaseInterceptorChain@e2e59e was created.
Current flow:
   receive [LoggingInInterceptor, PolicyInInterceptor]
   pre-stream [CertConstraintsInterceptor]
   post-stream [TransformInInterceptor]
   unmarshal [JAXRSInInterceptor]
   pre-logical [OneWayProcessorInterceptor]
   invoke [ServiceInvokerInterceptor]
   post-invoke [OutgoingChainInterceptor]

2012-07-24 15:30:57,905 | DEBUG | er/v1/json/doit/ | PhaseInterceptorChain
| .cxf.phase.PhaseInterceptorChain  259 | 119 - org.apache.cxf.cxf-api -
2.6.1 | Invoking handleMessage on interceptor
org.apache.cxf.interceptor.LoggingInInterceptor@10d144e
2012-07-24 15:30:57,935 | INFO  | er/v1/json/doit/ | LoggingInInterceptor
| eptor.AbstractLoggingInterceptor  233 | 119 - org.apache.cxf.cxf-api -
2.6.1 | Inbound Message
----------------------------
ID: 1
Address: http://localhost:8181/cxf/xyz/json/doit/
Encoding: ISO-8859-1
Http-Method: POST
Content-Type: application/json
Headers: {Accept=[application/json], accept-encoding=[gzip,deflate],
Content-Length=[33], content-type=[application/json], Host=[localhost:8181],
User-Agent=[Jakarta Commons-HttpClient/3.1]}
Payload: {"DoItRequest":{"country":"DE"}}

--------------------------------------
2012-07-24 15:30:57,935 | DEBUG | er/v1/json/doit/ | PhaseInterceptorChain
| .cxf.phase.PhaseInterceptorChain  259 | 119 - org.apache.cxf.cxf-api -
2.6.1 | Invoking handleMessage on interceptor
org.apache.cxf.ws.policy.PolicyInInterceptor@688c5d
2012-07-24 15:30:57,935 | DEBUG | er/v1/json/doit/ | PhaseInterceptorChain
| .cxf.phase.PhaseInterceptorChain  259 | 119 - org.apache.cxf.cxf-api -
2.6.1 | Invoking handleMessage on interceptor
org.apache.cxf.transport.https.CertConstraintsInterceptor@1abf87e
2012-07-24 15:30:57,935 | DEBUG | er/v1/json/doit/ | PhaseInterceptorChain
| .cxf.phase.PhaseInterceptorChain  259 | 119 - org.apache.cxf.cxf-api -
2.6.1 | Invoking handleMessage on interceptor
org.apache.cxf.interceptor.transform.TransformInInterceptor@1d76e81
2012-07-24 15:30:59,157 | DEBUG | heckpoint Worker | MessageDatabase
| emq.store.kahadb.MessageDatabase 1349 | 196 -
org.apache.activemq.activemq-core - 5.6.0 | Checkpoint started.
2012-07-24 15:30:59,257 | DEBUG | er/v1/json/doit/ | PhaseInterceptorChain
| .cxf.phase.PhaseInterceptorChain  259 | 119 - org.apache.cxf.cxf-api -
2.6.1 | Invoking handleMessage on interceptor
org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor@93660b
2012-07-24 15:30:59,317 | DEBUG | er/v1/json/doit/ | JAXRSUtils
| pache.cxf.jaxrs.utils.JAXRSUtils  234 | 119 - org.apache.cxf.cxf-api -
2.6.1 | Trying to select a resource class, request path : /doit/
2012-07-24 15:30:59,347 | DEBUG | er/v1/json/doit/ | JAXRSUtils
| pache.cxf.jaxrs.utils.JAXRSUtils  296 | 119 - org.apache.cxf.cxf-api -
2.6.1 | Trying to select a resource operation on the resource class
org.xyz.routes.json.Resource
2012-07-24 15:30:59,347 | DEBUG | er/v1/json/doit/ | JAXRSUtils
| pache.cxf.jaxrs.utils.JAXRSUtils  354 | 119 - org.apache.cxf.cxf-api -
2.6.1 | Resource operation doit may get selected
2012-07-24 15:30:59,347 | DEBUG | er/v1/json/doit/ | JAXRSUtils
| pache.cxf.jaxrs.utils.JAXRSUtils  378 | 119 - org.apache.cxf.cxf-api -
2.6.1 | Resource operation doit on the resource class
org.xyz.routes.json.Resource has been selected
2012-07-24 15:30:59,347 | DEBUG | er/v1/json/doit/ | JAXRSInInterceptor
| s.interceptor.JAXRSInInterceptor  227 | 119 - org.apache.cxf.cxf-api -
2.6.1 | Request path is: /doit/
2012-07-24 15:30:59,347 | DEBUG | er/v1/json/doit/ | JAXRSInInterceptor
| s.interceptor.JAXRSInInterceptor  228 | 119 - org.apache.cxf.cxf-api -
2.6.1 | Request HTTP method is: POST
2012-07-24 15:30:59,347 | DEBUG | er/v1/json/doit/ | JAXRSInInterceptor
| s.interceptor.JAXRSInInterceptor  229 | 119 - org.apache.cxf.cxf-api -
2.6.1 | Request contentType is: application/json
2012-07-24 15:30:59,357 | DEBUG | er/v1/json/doit/ | JAXRSInInterceptor
| s.interceptor.JAXRSInInterceptor  230 | 119 - org.apache.cxf.cxf-api -
2.6.1 | Accept contentType is: application/json
2012-07-24 15:30:59,357 | DEBUG | er/v1/json/doit/ | JAXRSInInterceptor
| s.interceptor.JAXRSInInterceptor  232 | 119 - org.apache.cxf.cxf-api -
2.6.1 | Found operation: doit
2012-07-24 15:30:59,377 | DEBUG | er/v1/json/doit/ | bind
| javax.xml.bind.ContextFinder      258 |  -  -  | Searching jaxb.properties
2012-07-24 15:30:59,377 | DEBUG | er/v1/json/doit/ | bind
| javax.xml.bind.ContextFinder      276 |  -  -  | Searching the system
property
2012-07-24 15:30:59,377 | DEBUG | er/v1/json/doit/ | bind
| javax.xml.bind.ContextFinder      284 |  -  -  | Searching
META-INF/services
2012-07-24 15:30:59,377 | DEBUG | er/v1/json/doit/ | bind
| javax.xml.bind.ContextFinder      299 |  -  -  | Unable to
load:META-INF/services/javax.xml.bind.JAXBContext
2012-07-24 15:30:59,377 | DEBUG | er/v1/json/doit/ | bind
| javax.xml.bind.ContextFinder      309 |  -  -  | Trying to create the
platform default provider
2012-07-24 15:30:59,377 | DEBUG | heckpoint Worker | MessageDatabase
| emq.store.kahadb.MessageDatabase 1484 | 196 -
org.apache.activemq.activemq-core - 5.6.0 | Checkpoint done.
2012-07-24 15:30:59,377 | DEBUG | er/v1/json/doit/ | ContextFactory
| m.sun.xml.bind.v2.ContextFactory  102 |  -  -  | Property
com.sun.xml.bind.XmlAccessorFactoryis not active.  Using JAXB's
implementation
2012-07-24 15:30:59,618 | DEBUG | er/v1/json/doit/ |
WebApplicationExceptionMapper    | pl.WebApplicationExceptionMapper   62 |
119 - org.apache.cxf.cxf-api - 2.6.1 | WebApplicationException has been
caught, status: 400, message: exception cause class:
java.lang.NullPointerException
javax.ws.rs.WebApplicationException: java.lang.NullPointerException
        at
org.apache.cxf.jaxrs.provider.json.JSONProvider.readFrom(JSONProvider.java:246)[130:org.apache.cxf.cxf-rt-rs-extension-providers:2.6.1]
        at
org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBody(JAXRSUtils.java:1038)[132:org.apache.cxf.cxf-rt-frontend-jaxrs:2.6.1]
        at
org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameter(JAXRSUtils.java:614)[132:org.apache.cxf.cxf-rt-frontend-jaxrs:2.6.1]
        at
org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameters(JAXRSUtils.java:578)[132:org.apache.cxf.cxf-rt-frontend-jaxrs:2.6.1]
        at
org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRSInInterceptor.java:238)[132:org.apache.cxf.cxf-rt-frontend-jaxrs:2.6.1]
        at
org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:89)[132:org.apache.cxf.cxf-rt-frontend-jaxrs:2.6.1]
        at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)[119:org.apache.cxf.cxf-api:2.6.1]
        at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:122)[119:org.apache.cxf.cxf-api:2.6.1]
        at
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:211)[126:org.apache.cxf.cxf-rt-transports-http:2.6.1]
        at
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213)[126:org.apache.cxf.cxf-rt-transports-http:2.6.1]
        at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:154)[126:org.apache.cxf.cxf-rt-transports-http:2.6.1]
        at
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:129)[126:org.apache.cxf.cxf-rt-transports-http:2.6.1]
        at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:187)[126:org.apache.cxf.cxf-rt-transports-http:2.6.1]
        at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:110)[126:org.apache.cxf.cxf-rt-transports-http:2.6.1]
        at
javax.servlet.http.HttpServlet.service(HttpServlet.java:713)[61:org.apache.geronimo.specs.geronimo-servlet_2.5_spec:1.1.2]
        at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:166)[126:org.apache.cxf.cxf-rt-transports-http:2.6.1]
        at
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:547)[72:org.eclipse.jetty.servlet:7.5.4.v20111024]
        at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:480)[72:org.eclipse.jetty.servlet:7.5.4.v20111024]
        at
org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:70)[82:org.ops4j.pax.web.pax-web-jetty:1.0.9]
        at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)[70:org.eclipse.jetty.server:7.5.4.v20111024]
        at
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520)[71:org.eclipse.jetty.security:7.5.4.v20111024]
        at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)[70:org.eclipse.jetty.server:7.5.4.v20111024]
        at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:941)[70:org.eclipse.jetty.server:7.5.4.v20111024]
        at
org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:117)[82:org.ops4j.pax.web.pax-web-jetty:1.0.9]
        at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409)[72:org.eclipse.jetty.servlet:7.5.4.v20111024]
        at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186)[70:org.eclipse.jetty.server:7.5.4.v20111024]
        at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:875)[70:org.eclipse.jetty.server:7.5.4.v20111024]
        at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)[70:org.eclipse.jetty.server:7.5.4.v20111024]
        at
org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:72)[82:org.ops4j.pax.web.pax-web-jetty:1.0.9]
        at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)[70:org.eclipse.jetty.server:7.5.4.v20111024]
        at
org.eclipse.jetty.server.Server.handle(Server.java:345)[70:org.eclipse.jetty.server:7.5.4.v20111024]
        at
org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441)[70:org.eclipse.jetty.server:7.5.4.v20111024]
        at
org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:936)[70:org.eclipse.jetty.server:7.5.4.v20111024]
        at
org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:801)[66:org.eclipse.jetty.http:7.5.4.v20111024]
        at
org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:224)[66:org.eclipse.jetty.http:7.5.4.v20111024]
        at
org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51)[70:org.eclipse.jetty.server:7.5.4.v20111024]
        at
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586)[65:org.eclipse.jetty.io:7.5.4.v20111024]
        at
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44)[65:org.eclipse.jetty.io:7.5.4.v20111024]
        at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)[64:org.eclipse.jetty.util:7.5.4.v20111024]
        at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)[64:org.eclipse.jetty.util:7.5.4.v20111024]
        at java.lang.Thread.run(Thread.java:662)[:1.6.0_24]
Caused by: java.lang.NullPointerException
        at
org.codehaus.jettison.AbstractXMLInputFactory.readAll(AbstractXMLInputFactory.java:122)[129:org.codehaus.jettison.jettison:1.3.1]
        at
org.codehaus.jettison.AbstractXMLInputFactory.createXMLStreamReader(AbstractXMLInputFactory.java:105)[129:org.codehaus.jettison.jettison:1.3.1]
        at
org.codehaus.jettison.AbstractXMLInputFactory.createXMLStreamReader(AbstractXMLInputFactory.java:93)[129:org.codehaus.jettison.jettison:1.3.1]
        at
org.apache.cxf.jaxrs.provider.json.utils.JSONUtils.createStreamReader(JSONUtils.java:159)[130:org.apache.cxf.cxf-rt-rs-extension-providers:2.6.1]
        at
org.apache.cxf.jaxrs.provider.json.JSONProvider.createReader(JSONProvider.java:264)[130:org.apache.cxf.cxf-rt-rs-extension-providers:2.6.1]
        at
org.apache.cxf.jaxrs.provider.json.JSONProvider.createReader(JSONProvider.java:254)[130:org.apache.cxf.cxf-rt-rs-extension-providers:2.6.1]
        at
org.apache.cxf.jaxrs.provider.json.JSONProvider.readFrom(JSONProvider.java:216)[130:org.apache.cxf.cxf-rt-rs-extension-providers:2.6.1]
        ... 40 more
2012-07-24 15:30:59,658 | DEBUG | er/v1/json/doit/ | PhaseInterceptorChain
| .cxf.phase.PhaseInterceptorChain  259 | 119 - org.apache.cxf.cxf-api -
2.6.1 | Invoking handleMessage on interceptor
org.apache.cxf.interceptor.OneWayProcessorInterceptor@1768eb6
2012-07-24 15:30:59,658 | DEBUG | er/v1/json/doit/ | PhaseInterceptorChain
| .cxf.phase.PhaseInterceptorChain  259 | 119 - org.apache.cxf.cxf-api -
2.6.1 | Invoking handleMessage on interceptor
org.apache.cxf.interceptor.ServiceInvokerInterceptor@97d818
2012-07-24 15:30:59,658 | DEBUG | er/v1/json/doit/ | PhaseInterceptorChain
| .cxf.phase.PhaseInterceptorChain  259 | 119 - org.apache.cxf.cxf-api -
2.6.1 | Invoking handleMessage on interceptor
org.apache.cxf.interceptor.OutgoingChainInterceptor@ec4446
2012-07-24 15:30:59,698 | DEBUG | er/v1/json/doit/ |
OutgoingChainInterceptor         | rceptor.OutgoingChainInterceptor  176 |
119 - org.apache.cxf.cxf-api - 2.6.1 | Interceptors contributed by bus:
[org.apache.cxf.interceptor.LoggingOutInterceptor@1ba9eea,
org.apache.cxf.ws.policy.PolicyOutInterceptor@1173763,
org.apache.cxf.interceptor.transform.TransformOutInterceptor@1354d59]
2012-07-24 15:30:59,698 | DEBUG | er/v1/json/doit/ |
OutgoingChainInterceptor         | rceptor.OutgoingChainInterceptor  180 |
119 - org.apache.cxf.cxf-api - 2.6.1 | Interceptors contributed by service:
[]
2012-07-24 15:30:59,698 | DEBUG | er/v1/json/doit/ |
OutgoingChainInterceptor         | rceptor.OutgoingChainInterceptor  184 |
119 - org.apache.cxf.cxf-api - 2.6.1 | Interceptors contributed by endpoint:
[org.apache.cxf.interceptor.MessageSenderInterceptor@6913ce]
2012-07-24 15:30:59,698 | DEBUG | er/v1/json/doit/ |
OutgoingChainInterceptor         | rceptor.OutgoingChainInterceptor  190 |
119 - org.apache.cxf.cxf-api - 2.6.1 | Interceptors contributed by binding:
[org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor@9366ba]
2012-07-24 15:30:59,698 | DEBUG | er/v1/json/doit/ | PhaseInterceptorChain
| .cxf.phase.PhaseInterceptorChain  205 | 119 - org.apache.cxf.cxf-api -
2.6.1 | Adding interceptor
org.apache.cxf.interceptor.LoggingOutInterceptor@1ba9eea to phase pre-stream
2012-07-24 15:30:59,698 | DEBUG | er/v1/json/doit/ | PhaseInterceptorChain
| .cxf.phase.PhaseInterceptorChain  205 | 119 - org.apache.cxf.cxf-api -
2.6.1 | Adding interceptor
org.apache.cxf.ws.policy.PolicyOutInterceptor@1173763 to phase setup
2012-07-24 15:30:59,698 | DEBUG | er/v1/json/doit/ | PhaseInterceptorChain
| .cxf.phase.PhaseInterceptorChain  205 | 119 - org.apache.cxf.cxf-api -
2.6.1 | Adding interceptor
org.apache.cxf.interceptor.transform.TransformOutInterceptor@1354d59 to
phase pre-stream
2012-07-24 15:30:59,698 | DEBUG | er/v1/json/doit/ | PhaseInterceptorChain
| .cxf.phase.PhaseInterceptorChain  205 | 119 - org.apache.cxf.cxf-api -
2.6.1 | Adding interceptor
org.apache.cxf.interceptor.MessageSenderInterceptor@6913ce to phase
prepare-send
2012-07-24 15:30:59,698 | DEBUG | er/v1/json/doit/ | PhaseInterceptorChain
| .cxf.phase.PhaseInterceptorChain  205 | 119 - org.apache.cxf.cxf-api -
2.6.1 | Adding interceptor
org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor@9366ba to phase marshal
2012-07-24 15:30:59,698 | DEBUG | er/v1/json/doit/ | PhaseInterceptorChain
| .cxf.phase.PhaseInterceptorChain  674 | 119 - org.apache.cxf.cxf-api -
2.6.1 | Chain org.apache.cxf.phase.PhaseInterceptorChain@13d6bcb was
created. Current flow:
   setup [PolicyOutInterceptor]
   prepare-send [MessageSenderInterceptor]
   pre-stream [LoggingOutInterceptor, TransformOutInterceptor]
   marshal [JAXRSOutInterceptor]

2012-07-24 15:30:59,698 | DEBUG | er/v1/json/doit/ | PhaseInterceptorChain
| .cxf.phase.PhaseInterceptorChain  259 | 119 - org.apache.cxf.cxf-api -
2.6.1 | Invoking handleMessage on interceptor
org.apache.cxf.ws.policy.PolicyOutInterceptor@1173763
2012-07-24 15:30:59,698 | DEBUG | er/v1/json/doit/ | PolicyOutInterceptor
| f.ws.policy.PolicyOutInterceptor   63 | 119 - org.apache.cxf.cxf-api -
2.6.1 | No binding operation info.
2012-07-

Do you have an idea what could be wrong here?



--
View this message in context: 
http://camel.465427.n5.nabble.com/CXFRS-does-not-process-JSON-tp5716343p5716403.html
Sent from the Camel - Users mailing list archive at Nabble.com.


--
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/

Blog: http://sberyozkin.blogspot.com

Reply via email to