[ 
https://issues.apache.org/activemq/browse/CAMEL-2224?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=56087#action_56087
 ] 

Charles Moulliard commented on CAMEL-2224:
------------------------------------------

@Sergey,

The call of a GET service works fine.

Concerning the call to a POST, here is the error displayed in the console now :

{code}
10:59:44,132 | DEBUG | ervice/incidents | jetty                            | 
service.jetty.internal.JCLLogger   85 | REQUEST 
/cxf/camel-rest-example/reportservice/incidents on 
org.mortbay.jetty.httpconnect...@136f665
10:59:44,132 | DEBUG | ervice/incidents | ServerModel                      | 
eb.service.spi.model.ServerModel  268 | Matching 
[/cxf/camel-rest-example/reportservice/incidents]...
10:59:44,132 | DEBUG | ervice/incidents | ServerModel                      | 
eb.service.spi.model.ServerModel  286 | Path 
[/cxf/camel-rest-example/reportservice/incidents] matched to 
{pattern=/cxf/.*,model=ServletModel{id=org.ops4j.pax.web.service.spi.model.ServletModel-6,name=cxf-osgi-transport-servlet,urlPatterns=[/cxf/*],alias=/cxf,servlet=org.apache.cxf.transport.http_osgi.springosgiserv...@23a559,initParams={org.springframework.osgi.bean.name=osgiServlet,
 alias=/cxf, service.id=78, objectClass=[Ljava.lang.String;@113de03, 
Bundle-SymbolicName=org.apache.cxf.bundle, 
servlet-name=cxf-osgi-transport-servlet, 
Bundle-Version=2.2.5},context=ContextModel{id=org.ops4j.pax.web.service.spi.model.ContextModel-4,name=,httpContext=DefaultHttpContext{bundle=org.apache.cxf.bundle
 [96]},contextParams={}}}}
10:59:44,132 | DEBUG | ervice/incidents | HttpServiceContext               | 
etty.internal.HttpServiceContext  110 | Handling request for 
[/cxf/camel-rest-example/reportservice/incidents] using http context 
[DefaultHttpContext{bundle=org.apache.cxf.bundle [96]}]
10:59:44,132 | DEBUG | ervice/incidents | jetty                            | 
service.jetty.internal.JCLLogger   85 | 
sessionmanager=org.mortbay.jetty.servlet.hashsessionmana...@16a72f2
10:59:44,132 | DEBUG | ervice/incidents | jetty                            | 
service.jetty.internal.JCLLogger   85 | session=null
10:59:44,132 | DEBUG | ervice/incidents | jetty                            | 
service.jetty.internal.JCLLogger   85 | servlet=cxf-osgi-transport-servlet
10:59:44,132 | DEBUG | ervice/incidents | jetty                            | 
service.jetty.internal.JCLLogger   85 | chain=null
10:59:44,148 | DEBUG | ervice/incidents | jetty                            | 
service.jetty.internal.JCLLogger   85 | servlet 
holder=cxf-osgi-transport-servlet
10:59:44,148 | DEBUG | ervice/incidents | OsgiServlet                      | 
.http_osgi.OsgiServletController  276 | Service http request on thread: 
thread[31816...@qtp2-6 - /cxf/camel-rest-example/reportservice/incidents,5,main]
10:59:44,148 | DEBUG | ervice/incidents | AbstractHTTPDestination          | 
ort.http.AbstractHTTPDestination  166 | Request Headers: 
{Host=[localhost:8080], User-Agent=[curl/7.19.5 (i586-pc-mingw32msvc) 
libcurl/7.19.5 zlib/1.2.3], Content-Type=[null], Accept=[application/xml]}
10:59:44,148 | DEBUG | ervice/incidents | PhaseInterceptorChain            | 
.cxf.phase.PhaseInterceptorChain  587 | Chain 
org.apache.cxf.phase.phaseinterceptorch...@1a0a5fc was created. Current flow:
  unmarshal [JAXRSInInterceptor]
  pre-logical [OneWayProcessorInterceptor]
  invoke [ServiceInvokerInterceptor]
  post-invoke [OutgoingChainInterceptor]

10:59:44,148 | DEBUG | ervice/incidents | PhaseInterceptorChain            | 
.cxf.phase.PhaseInterceptorChain  233 | Invoking handleMessage on interceptor 
org.apache.cxf.jaxrs.interceptor.jaxrsinintercep...@1f1788a
10:59:44,148 | DEBUG | ervice/incidents | JAXRSUtils                       | 
pache.cxf.jaxrs.utils.JAXRSUtils  223 | Trying to select a resource class 
/reportservice/incidents, request path : {1}
10:59:44,148 | DEBUG | ervice/incidents | JAXRSUtils                       | 
pache.cxf.jaxrs.utils.JAXRSUtils  279 | Trying to select a resource operation 
on the resource class 
org.apache.camel.example.reportincident.restful.ReportIncidentService
10:59:44,148 | DEBUG | ervice/incidents | JAXRSUtils                       | 
pache.cxf.jaxrs.utils.JAXRSUtils  396 | No method match, method name : 
getIncident, request path : /incidents, method @Path : /incidents/{id}/, HTTP 
Method : POST, method HTTP Method : GET, ContentType : */*, method @Consumes : 
*/*,, Accept : application/xml,, method @Produces : application/xml,.
10:59:44,163 | DEBUG | ervice/incidents | JAXRSUtils                       | 
pache.cxf.jaxrs.utils.JAXRSUtils  396 | No method match, method name : 
updateIncident, request path : /incidents, method @Path : /incidents/, HTTP 
Method : POST, method HTTP Method : PUT, ContentType : */*, method @Consumes : 
*/*,, Accept : application/xml,, method @Produces : */*,.
10:59:44,163 | DEBUG | ervice/incidents | JAXRSUtils                       | 
pache.cxf.jaxrs.utils.JAXRSUtils  332 | Resource operation addIncident may get 
selected
10:59:44,163 | DEBUG | ervice/incidents | JAXRSUtils                       | 
pache.cxf.jaxrs.utils.JAXRSUtils  396 | No method match, method name : 
addIncidentUniqueResponseCode, request path : /incidents, method @Path : 
/incidentsUniqueResponseCode/, HTTP Method : POST, method HTTP Method : POST, 
ContentType : */*, method @Consumes : */*,, Accept : application/xml,, method 
@Produces : */*,.
10:59:44,163 | DEBUG | ervice/incidents | JAXRSUtils                       | 
pache.cxf.jaxrs.utils.JAXRSUtils  396 | No method match, method name : 
deleteIncident, request path : /incidents, method @Path : /incidents/{id}/, 
HTTP Method : POST, method HTTP Method : DELETE, ContentType : */*, method 
@Consumes : */*,, Accept : application/xml,, method @Produces : */*,.
10:59:44,163 | DEBUG | ervice/incidents | JAXRSUtils                       | 
pache.cxf.jaxrs.utils.JAXRSUtils  355 | Resource operation addIncident on the 
resource class 
org.apache.camel.example.reportincident.restful.ReportIncidentService has been 
selected
10:59:44,163 | DEBUG | ervice/incidents | JAXRSInInterceptor               | 
s.interceptor.JAXRSInInterceptor  195 | Request path is: 
/reportservice/incidents
10:59:44,163 | DEBUG | ervice/incidents | JAXRSInInterceptor               | 
s.interceptor.JAXRSInInterceptor  196 | Request HTTP method is: POST
10:59:44,163 | DEBUG | ervice/incidents | JAXRSInInterceptor               | 
s.interceptor.JAXRSInInterceptor  197 | Request contentType is: */*
10:59:44,163 | DEBUG | ervice/incidents | JAXRSInInterceptor               | 
s.interceptor.JAXRSInInterceptor  198 | Accept contentType is: application/xml
10:59:44,163 | DEBUG | ervice/incidents | JAXRSInInterceptor               | 
s.interceptor.JAXRSInInterceptor  200 | Found operation: addIncident
10:59:44,163 | DEBUG | ervice/incidents | JAXRSUtils                       | 
pache.cxf.jaxrs.utils.JAXRSUtils  556 | No Content-Type specified for HTTP POST
10:59:44,163 | WARN  | ervice/incidents | WebApplicationExceptionMapper    | 
pl.WebApplicationExceptionMapper   52 | WebApplicationException has been caught 
: cause is javax.xml.stream.XMLStreamException
10:59:44,163 | DEBUG | ervice/incidents | PhaseInterceptorChain            | 
.cxf.phase.PhaseInterceptorChain  233 | Invoking handleMessage on interceptor 
org.apache.cxf.interceptor.onewayprocessorintercep...@2332b6
10:59:44,179 | DEBUG | ervice/incidents | PhaseInterceptorChain            | 
.cxf.phase.PhaseInterceptorChain  233 | Invoking handleMessage on interceptor 
org.apache.cxf.interceptor.serviceinvokerintercep...@d66992
10:59:44,179 | DEBUG | ervice/incidents | PhaseInterceptorChain            | 
.cxf.phase.PhaseInterceptorChain  233 | Invoking handleMessage on interceptor 
org.apache.cxf.interceptor.outgoingchainintercep...@ad0636
10:59:44,179 | DEBUG | ervice/incidents | OutgoingChainInterceptor         | 
rceptor.OutgoingChainInterceptor  163 | Interceptors contributed by bus: []
10:59:44,179 | DEBUG | ervice/incidents | OutgoingChainInterceptor         | 
rceptor.OutgoingChainInterceptor  167 | Interceptors contributed by service: []
10:59:44,179 | DEBUG | ervice/incidents | OutgoingChainInterceptor         | 
rceptor.OutgoingChainInterceptor  171 | Interceptors contributed by endpoint: 
[org.apache.cxf.interceptor.messagesenderintercep...@172f5d6]
10:59:44,179 | DEBUG | ervice/incidents | OutgoingChainInterceptor         | 
rceptor.OutgoingChainInterceptor  177 | Interceptors contributed by binding: 
[org.apache.cxf.jaxrs.interceptor.jaxrsoutintercep...@69dc53]
10:59:44,179 | DEBUG | ervice/incidents | PhaseInterceptorChain            | 
.cxf.phase.PhaseInterceptorChain  587 | Chain 
org.apache.cxf.phase.phaseinterceptorch...@1ffe90d was created. Current flow:
  prepare-send [MessageSenderInterceptor]
  marshal [JAXRSOutInterceptor]
{code}


> Response received is of type java.lang.String instead of 
> javax.ws.rs.core.Response
> ----------------------------------------------------------------------------------
>
>                 Key: CAMEL-2224
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-2224
>             Project: Apache Camel
>          Issue Type: Bug
>          Components: camel-cxf
>    Affects Versions: 2.1.0
>            Reporter: Charles Moulliard
>            Assignee: Willem Jiang
>         Attachments: camel-cxf-rest-issue.zip
>
>
> {code}
> D:\Soft\opensource\curl-7.19.5-win32-nossl>curl -i -H "Accept: 
> application/xml" 
> http://localhost:8080/cxf/camel-rest-example/reportservice/incidents/1
> 11/
> HTTP/1.1 500 Internal Server Error
> Content-Type: text/xml; charset=iso-8859-1
> Content-Length: 256
> Server: Jetty(6.1.x)
> <ns1:XMLFault 
> xmlns:ns1="http://cxf.apache.org/bindings/xformat";><ns1:faultstring 
> xmlns:ns1="http://cxf.apache.org/bindings/xformat";>java.lang.ClassCa
> stException: java.lang.String cannot be cast to 
> javax.ws.rs.core.Response</ns1:faultstring></ns1:XMLFault>
> {code}
> See the code in attachment
> Here is the config of apache karaf feature 
> {code}
> #
> # Comma separated list of features repositories to register by default
> #
> featuresRepositories=mvn:org.apache.felix.karaf/apache-felix-karaf/1.0.0/xml/features,mvn:org.apache.camel.karaf/features/2.1-SNAPSHOT/xml/features,jar:mvn:org.apache.camel.example/reportincident.restful.features/1.0-SNAPSHOT!/reportincident.features-1.0-SNAPSHOT-features.xml
> #
> # Comma separated list of features to install at startup
> # 
> featuresBoot=spring,spring-dm,camel,http-reportingincident,spring-web,camel-cxf,reportincident
> {code}
> camel + code is present in the zip. They are three bundles 
> - one generating the feature file of the project
> - another containing the REST service
> - and the last camel route
> here is the log on camel
> {code}
> 17:34:22,155 | INFO  | xtenderThread-37 | ContextLoaderListener            | 
> BundleApplicationContextListener   45 | Application context successfully 
> refreshed 
> (OsgiBundleXmlApplicationContext(bundle=org.apache.camel.example.reportincident.restful.routing,
>  config=osgibundle:/META-INF/spring/*.xml))
> 17:34:27,701 | INFO  | 14218...@qtp1-1  | Tracer                           | 
> rg.apache.camel.processor.Logger   88 | 970d2b95-93d9-4319-a5fd-4906ec9a9a9a 
> >>> from(/camel-rest-example/) --> setHeader[CamelCxfRsUsingHttpAPI], 
> Pattern:InOut, 
> Headers:{camelcxfrsoperationresourceinfostack=[org.apache.cxf.jaxrs.model.methodinvocationi...@82fd0f],
>  
> CamelHttpMethod=GET, 
> CamelHttpPath=/camel-rest-example/reportservice/incidents/111/, 
> CamelCxfRsResponseClass=class 
> org.apache.camel.example.reportincident.restful.Incident, 
> operationName=getIncident, 
> CamelHttpUri=/cxf/camel-rest-example/reportservice/incidents/111/, 
> CamelAcceptContentType=application/xml, 
> CamelHttpCharacterEncoding=ISO-8859-1}, BodyType:Object[], 
> Body:[Ljava.lang.Object;@16237fd
> 17:34:27,701 | INFO  | 14218...@qtp1-1  | Tracer                           | 
> rg.apache.camel.processor.Logger   88 | 970d2b95-93d9-4319-a5fd-4906ec9a9a9a 
> >>> setHeader[CamelCxfRsUsingHttpAPI] --> 
> log://org.apache.camel.example.reportIncident?level=INFO, Pattern:InOut, 
> Headers:{CamelHttpPath=/camel-rest-example/reportservice/incidents/111/, 
> CamelHttpUri=/cxf/camel-rest-example/reportservice/incidents/111/, 
> camelcxfrsoperationresourceinfostack=[org.apache.cxf.jaxrs.model.methodinvocationi...@82fd0f],
>  CamelCxfRsUsingHttpAPI=True, CamelCxfRsResponseClass=class 
> org.apache.camel.example.reportincident.restful.Incident, 
> CamelHttpCharacterEncoding=ISO-8859-1, CamelHttpMethod=GET, 
> operationName=getIncident, CamelAcceptContentType=application/xml}, 
> BodyType:Object[], Body:[Ljava.lang.Object;@16237fd
> 17:34:27,717 | INFO  | 14218...@qtp1-1  | reportIncident                   | 
> rg.apache.camel.processor.Logger   88 | Exchange[BodyType:Object[], 
> Body:[Ljava.lang.Object;@16237fd]
> 17:34:27,717 | WARN  | 14218...@qtp1-1  | PhaseInterceptorChain            | 
> ache.cxf.common.logging.LogUtils  361 | Interceptor has thrown exception, 
> unwinding now
> java.lang.ClassCastException: java.lang.String cannot be cast to 
> javax.ws.rs.core.Response
>       at 
> org.apache.camel.example.reportincident.restful.OverrideResponseHandler.handleResponse(OverrideResponseHandler.java:22)
>       at 
> org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.processResponse(JAXRSOutInterceptor.java:131)
>       at 
> org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.handleMessage(JAXRSOutInterceptor.java:77)
>       at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236)
>       at 
> org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:76)
>       at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236)
>       at 
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:109)
>       at 
> org.apache.cxf.transport.http_osgi.OsgiDestination.doMessage(OsgiDestination.java:79)
>       at 
> org.apache.cxf.transport.http_osgi.OsgiServletController.invokeDestination(OsgiServletController.java:324)
>       at 
> org.apache.cxf.transport.http_osgi.OsgiServletController.invoke(OsgiServletController.java:112)
>       at 
> org.apache.cxf.transport.http_osgi.OsgiServlet.invoke(OsgiServlet.java:53)
>       at 
> org.apache.cxf.transport.http_osgi.SpringOsgiServlet.invoke(SpringOsgiServlet.java:48)
>       at 
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179)
>       at 
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:108)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:693)
>       at 
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159)
>       at 
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
>       at 
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:363)
>       at 
> org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.handle(HttpServiceServletHandler.java:64)
>       at 
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
>       at 
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
>       at 
> org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.handle(HttpServiceContext.java:111)
>       at 
> org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:64)
>       at 
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>       at org.mortbay.jetty.Server.handle(Server.java:324)
>       at 
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
>       at 
> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:864)
>       at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:533)
>       at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:207)
>       at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:403)
>       at 
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
>       at 
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:522)
> {code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to