You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by salemi <sa...@avaya.com> on 2013/03/14 19:58:53 UTC

The exchange in.body object doesn't include the respond when cxf-rs (restfull) endpoint is called

I am having trouble with one use case in camel. 

In this use case we receive a JMS message from ActiveMq (MEP is InOnly) and
in the route I extract some information  and use the details to call the
restFull Api.
 
The call to retrieveSourceId is successful but the respond doesn’t get saved
off in Camels Exchange message. The In.Body of the camel Exchange message
contains the original JMS message.

Do you have any idea, why the return message from restful Api doesn’t get
persisted into Exchange message?

Thanks you,
Ali

The simplified  route looks like followed:
<route id="pumpupRoute" autoStartup="false" >
   <from uri="jms:queue:CamelQueue"/>
   <process ref="retrieveSourceIdProcessor"/>
   <bean
method="retrieveSourceId(${in.header.sourcename},${in.header.sourcetypename})"
ref="adminInOperClient"/>
   <convertBodyTo type="java.lang.String"/>
   <process ref="sourceIdProcessor"/>
   <process ref="startPuMsgFlowProcessor"/>
   <bean method="startPumpup(${in.header.sourceid})" ref="pumpupClient"/>   
</route>

The cxf-rs interface definition is:

In Spring this is referred to adminInOperClient:
@Path("/sources")
public interface AdminServiceInOperational {
      @GET
      @Produces(MediaType.APPLICATION_JSON)
      void retrieveSourceId(@QueryParam("sourcename") String aSourceName,
@QueryParam("sourcetypename") String aSourceTypeName);
}

In Spring this is referred to pumpupClient:
@Path("/pumpup")
public interface PumpupServiceResource {

      @POST
     
//@Path("?sourcename={sourceName}&sourceid={sourceEid}&sourcetype={sourceType}")
      void startPumpup(@QueryParam("sourceid") String aSourceId);

      @DELETE
      //@Path("?sourceid={sourceEid}")
      void endPumpup(@QueryParam("sourceid") String aSourceId);
}

The camel log for  the retrieveSourceId is shown below:

2013-03-14 10:43:42,968 [mer[CamelQueue]] INFO  PumpUpStart                   
- Pumpupstart
2013-03-14 10:43:42,968  INFO
[com.company.apc.processor.RetrieveSourceIdProcessor] -
RetriveSourceIdProcessor
2013-03-14 10:43:51,632 [mer[CamelQueue]] DEBUG DefaultListableBeanFactory    
- Returning cached instance of singleton bean 'adminInOperClient'
2013-03-14 10:43:51,640 [mer[CamelQueue]] DEBUG DefaultListableBeanFactory    
- No bean named 'simple' found in
org.springframework.beans.factory.support.DefaultListableBeanFactory@3b69709b:
defining beans
[pumpupClient.proxyFactory,pumpupClient,adminInOperClient.proxyFactory,adminInOperClient,loggingFeature,adminSink,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,bridgePropertyPlaceholder,shutdown,agent,camelTemplate,validationTimer,consumerTemplate,apc-server:beanPostProcessor,apc-server,pumpupRequestGenerator,connectionValidator,gsInterface,space,gigaSpace,jms,transportable2StringProcessor,agentPuMsgProcessor,accountAssignmentPuMsgProcessor,queuePuMsgProcessor,routingpointPuMsgProcessor,startPuMsgFlowProcessor,endPuMsgFlowProcessor,retrieveSourceIdProcessor,updateMessageSourceIdProcessor,sourceIdProcessor,processPuMsgProcessor,logoutReasonPuMsgProcessor,devicePuMsgProcessor,statePuMsgProcessor,classificationCodePuMsgProcessor,deviceGroupPuMsgProcessor,queuePriorityPuMsgProcessor,source,org.springframework.context.annotation.ConfigurationClassPostProcessor$ImportAwareBeanPostProcessor#0];
root of factory hierarchy
2013-03-14 10:43:51,641 [mer[CamelQueue]] DEBUG DefaultListableBeanFactory    
- Creating instance of bean
'org.apache.camel.language.simple.SimpleLanguage'
2013-03-14 10:43:51,642 [mer[CamelQueue]] DEBUG DefaultListableBeanFactory    
- Finished creating instance of bean
'org.apache.camel.language.simple.SimpleLanguage'
2013-03-14 10:43:51,643 [mer[CamelQueue]] DEBUG DefaultListableBeanFactory    
- No bean named 'simple' found in
org.springframework.beans.factory.support.DefaultListableBeanFactory@3b69709b:
defining beans
[pumpupClient.proxyFactory,pumpupClient,adminInOperClient.proxyFactory,adminInOperClient,loggingFeature,adminSink,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,bridgePropertyPlaceholder,shutdown,agent,camelTemplate,validationTimer,consumerTemplate,apc-server:beanPostProcessor,apc-server,pumpupRequestGenerator,connectionValidator,gsInterface,space,gigaSpace,jms,transportable2StringProcessor,agentPuMsgProcessor,accountAssignmentPuMsgProcessor,queuePuMsgProcessor,routingpointPuMsgProcessor,startPuMsgFlowProcessor,endPuMsgFlowProcessor,retrieveSourceIdProcessor,updateMessageSourceIdProcessor,sourceIdProcessor,processPuMsgProcessor,logoutReasonPuMsgProcessor,devicePuMsgProcessor,statePuMsgProcessor,classificationCodePuMsgProcessor,deviceGroupPuMsgProcessor,queuePriorityPuMsgProcessor,source,org.springframework.context.annotation.ConfigurationClassPostProcessor$ImportAwareBeanPostProcessor#0];
root of factory hierarchy
2013-03-14 10:43:51,643 [mer[CamelQueue]] DEBUG DefaultListableBeanFactory    
- Creating instance of bean
'org.apache.camel.language.simple.SimpleLanguage'
2013-03-14 10:43:51,644 [mer[CamelQueue]] DEBUG DefaultListableBeanFactory    
- Finished creating instance of bean
'org.apache.camel.language.simple.SimpleLanguage'
2013-03-14 10:43:51,653 [mer[CamelQueue]] DEBUG ConfigurerImpl                
- Could not determine bean name for instance of class
org.apache.cxf.bus.managers.PhaseManagerImpl.
2013-03-14 10:43:51,713 [mer[CamelQueue]] DEBUG PhaseInterceptorChain         
- Adding interceptor org.apache.cxf.ws.policy.PolicyOutInterceptor@6383803b
to phase setup
2013-03-14 10:43:51,714 [mer[CamelQueue]] DEBUG PhaseInterceptorChain         
- Adding interceptor
org.apache.cxf.interceptor.MessageSenderInterceptor@32f12531 to phase
prepare-send
2013-03-14 10:43:51,716 [mer[CamelQueue]] DEBUG PhaseInterceptorChain         
- Adding interceptor
org.apache.cxf.interceptor.LoggingOutInterceptor@4fea67fb to phase
pre-stream
2013-03-14 10:43:51,717 [mer[CamelQueue]] DEBUG PhaseInterceptorChain         
- Adding interceptor
org.apache.cxf.interceptor.MessageSenderInterceptor@32f12531 to phase
prepare-send
2013-03-14 10:43:51,741 [mer[CamelQueue]] DEBUG DefaultListableBeanFactory    
- No bean named
'{http://pumpup.apc.company.com/}AdminServiceInOperational.http-conduit'
found in
org.springframework.beans.factory.support.DefaultListableBeanFactory@3b69709b:
defining beans
[pumpupClient.proxyFactory,pumpupClient,adminInOperClient.proxyFactory,adminInOperClient,loggingFeature,adminSink,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,bridgePropertyPlaceholder,shutdown,agent,camelTemplate,validationTimer,consumerTemplate,apc-server:beanPostProcessor,apc-server,pumpupRequestGenerator,connectionValidator,gsInterface,space,gigaSpace,jms,transportable2StringProcessor,agentPuMsgProcessor,accountAssignmentPuMsgProcessor,queuePuMsgProcessor,routingpointPuMsgProcessor,startPuMsgFlowProcessor,endPuMsgFlowProcessor,retrieveSourceIdProcessor,updateMessageSourceIdProcessor,sourceIdProcessor,processPuMsgProcessor,logoutReasonPuMsgProcessor,devicePuMsgProcessor,statePuMsgProcessor,classificationCodePuMsgProcessor,deviceGroupPuMsgProcessor,queuePriorityPuMsgProcessor,source,org.springframework.context.annotation.ConfigurationClassPostProcessor$ImportAwareBeanPostProcessor#0];
root of factory hierarchy
2013-03-14 10:43:51,741 [mer[CamelQueue]] DEBUG ConfigurerImpl                
- Could not find a definition for bean with id
{http://pumpup.apc.company.com/}AdminServiceInOperational.http-conduit - no
injection will be performed.
2013-03-14 10:43:51,742 [mer[CamelQueue]] DEBUG DefaultListableBeanFactory    
- No bean named 'http://10.129.149.96:8080/aapc/sources' found in
org.springframework.beans.factory.support.DefaultListableBeanFactory@3b69709b:
defining beans
[pumpupClient.proxyFactory,pumpupClient,adminInOperClient.proxyFactory,adminInOperClient,loggingFeature,adminSink,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,bridgePropertyPlaceholder,shutdown,agent,camelTemplate,validationTimer,consumerTemplate,apc-server:beanPostProcessor,apc-server,pumpupRequestGenerator,connectionValidator,gsInterface,space,gigaSpace,jms,transportable2StringProcessor,agentPuMsgProcessor,accountAssignmentPuMsgProcessor,queuePuMsgProcessor,routingpointPuMsgProcessor,startPuMsgFlowProcessor,endPuMsgFlowProcessor,retrieveSourceIdProcessor,updateMessageSourceIdProcessor,sourceIdProcessor,processPuMsgProcessor,logoutReasonPuMsgProcessor,devicePuMsgProcessor,statePuMsgProcessor,classificationCodePuMsgProcessor,deviceGroupPuMsgProcessor,queuePriorityPuMsgProcessor,source,org.springframework.context.annotation.ConfigurationClassPostProcessor$ImportAwareBeanPostProcessor#0];
root of factory hierarchy
2013-03-14 10:43:51,742 [mer[CamelQueue]] DEBUG ConfigurerImpl                
- Could not find a definition for bean with id
http://10.129.149.96:8080/aapc/sources - no injection will be performed.
2013-03-14 10:43:51,747 [mer[CamelQueue]] DEBUG HTTPConduit                   
- Conduit
'{http://pumpup.apc.company.com/}AdminServiceInOperational.http-conduit' has
been (re)configured for plain http.
2013-03-14 10:43:51,748 [mer[CamelQueue]] DEBUG HTTPConduit                   
- No Trust Decider configured for Conduit
'{http://pumpup.apc.company.com/}AdminServiceInOperational.http-conduit'
2013-03-14 10:43:51,748 [mer[CamelQueue]] DEBUG HTTPConduit                   
- No Auth Supplier configured for Conduit
'{http://pumpup.apc.company.com/}AdminServiceInOperational.http-conduit'
2013-03-14 10:43:51,748 [mer[CamelQueue]] DEBUG HTTPConduit                   
- Conduit
'{http://pumpup.apc.company.com/}AdminServiceInOperational.http-conduit' has
been configured for plain http.
2013-03-14 10:43:51,749 [mer[CamelQueue]] DEBUG HTTPConduit                   
- registering incoming observer:
org.apache.cxf.jaxrs.client.ClientMessageObserver@6b9b28bc
2013-03-14 10:43:51,750 [mer[CamelQueue]] DEBUG PhaseInterceptorChain         
- Chain org.apache.cxf.phase.PhaseInterceptorChain@143e98ae was created.
Current flow:
  setup [PolicyOutInterceptor]
  prepare-send [MessageSenderInterceptor]
  pre-stream [LoggingOutInterceptor]

2013-03-14 10:43:51,751 [mer[CamelQueue]] DEBUG PhaseInterceptorChain         
- Invoking handleMessage on interceptor
org.apache.cxf.ws.policy.PolicyOutInterceptor@6383803b
2013-03-14 10:43:51,751 [mer[CamelQueue]] DEBUG PolicyOutInterceptor          
- No binding operation info.
2013-03-14 10:43:51,751 [mer[CamelQueue]] DEBUG PhaseInterceptorChain         
- Invoking handleMessage on interceptor
org.apache.cxf.interceptor.MessageSenderInterceptor@32f12531
2013-03-14 10:43:51,761 [mer[CamelQueue]] DEBUG PhaseInterceptorChain         
- Adding interceptor
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor@49626430
to phase prepare-send-ending
2013-03-14 10:43:51,762 [mer[CamelQueue]] DEBUG PhaseInterceptorChain         
- Chain org.apache.cxf.phase.PhaseInterceptorChain@143e98ae was modified.
Current flow:
  setup [PolicyOutInterceptor]
  prepare-send [MessageSenderInterceptor]
  pre-stream [LoggingOutInterceptor]
  prepare-send-ending [MessageSenderEndingInterceptor]

2013-03-14 10:43:51,762 [mer[CamelQueue]] DEBUG PhaseInterceptorChain         
- Invoking handleMessage on interceptor
org.apache.cxf.interceptor.LoggingOutInterceptor@4fea67fb
2013-03-14 10:43:51,765 [mer[CamelQueue]] DEBUG PhaseInterceptorChain         
- Invoking handleMessage on interceptor
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor@49626430
2013-03-14 10:43:51,768 [mer[CamelQueue]] INFO  LoggingOutInterceptor         
- Outbound Message
---------------------------
ID: 1
Address:
http://10.129.149.96:8080/aapc/sources?sourcename=testdads1&sourcetypename=cm
Http-Method: GET
Content-Type: application/xml
Headers: {Charset=[UTF-8], Accept=[application/json],
Content-Type=[application/xml]}
--------------------------------------
2013-03-14 10:43:51,771 [mer[CamelQueue]] DEBUG Headers                       
- Accept: application/json
2013-03-14 10:43:51,771 [mer[CamelQueue]] DEBUG Headers                       
- Charset: UTF-8
2013-03-14 10:43:51,772 [mer[CamelQueue]] DEBUG Headers                       
- Content-Type: application/xml
2013-03-14 10:43:51,774 [mer[CamelQueue]] DEBUG TrustDecisionUtil             
- No Trust Decider for Conduit
'{http://pumpup.apc.company.com/}AdminServiceInOperational.http-conduit'. An
afirmative Trust Decision is assumed.
2013-03-14 10:43:51,787 [mer[CamelQueue]] DEBUG HTTPConduit                   
- Response Code: 200 Conduit:
{http://pumpup.apc.company.com/}AdminServiceInOperational.http-conduit
2013-03-14 10:43:51,787 [mer[CamelQueue]] DEBUG HTTPConduit                   
- Content length: -1
2013-03-14 10:43:51,788 [mer[CamelQueue]] DEBUG HTTPConduit                   
- Header fields: 
    null: [HTTP/1.1 200 OK]
    Date: [Thu, 14 Mar 2013 16:43:51 GMT]
    Transfer-Encoding: [chunked]
    Content-Type: [application/json]
    Server: [Apache-Coyote/1.1]

2013-03-14 10:43:51,790 [mer[CamelQueue]] DEBUG PhaseInterceptorChain         
- Adding interceptor org.apache.cxf.ws.policy.PolicyInInterceptor@465361b6
to phase receive
2013-03-14 10:43:51,791 [mer[CamelQueue]] DEBUG PhaseInterceptorChain         
- Adding interceptor org.apache.cxf.interceptor.LoggingInInterceptor@c3417cc
to phase receive
2013-03-14 10:43:51,792 [mer[CamelQueue]] DEBUG PhaseInterceptorChain         
- Chain org.apache.cxf.phase.PhaseInterceptorChain@6431d0b9 was created.
Current flow:
  receive [PolicyInInterceptor, LoggingInInterceptor]

2013-03-14 10:43:51,792 [mer[CamelQueue]] DEBUG PhaseInterceptorChain         
- Invoking handleMessage on interceptor
org.apache.cxf.ws.policy.PolicyInInterceptor@465361b6
2013-03-14 10:43:51,813 [mer[CamelQueue]] DEBUG ConfigurerImpl                
- Could not determine bean name for instance of class
org.apache.cxf.ws.policy.AssertionBuilderRegistryImpl.
2013-03-14 10:43:51,816 [mer[CamelQueue]] DEBUG ConfigurerImpl                
- Could not determine bean name for instance of class
org.apache.cxf.ws.policy.PolicyBuilderImpl.
2013-03-14 10:43:51,817 [mer[CamelQueue]] DEBUG ConfigurerImpl                
- Could not determine bean name for instance of class
org.apache.cxf.ws.policy.attachment.ServiceModelPolicyProvider.
2013-03-14 10:43:51,824 [mer[CamelQueue]] DEBUG ConfigurerImpl                
- Could not determine bean name for instance of class
org.apache.cxf.ws.policy.attachment.wsdl11.Wsdl11AttachmentPolicyProvider.
2013-03-14 10:43:51,832 [mer[CamelQueue]] DEBUG ConfigurerImpl                
- Could not determine bean name for instance of class
org.apache.cxf.ws.policy.PolicyInterceptorProviderRegistryImpl.
2013-03-14 10:43:51,833 [mer[CamelQueue]] DEBUG PhaseInterceptorChain         
- Invoking handleMessage on interceptor
org.apache.cxf.interceptor.LoggingInInterceptor@c3417cc
2013-03-14 10:43:51,835 [mer[CamelQueue]] INFO  LoggingInInterceptor          
- Inbound Message
----------------------------
ID: 1
Response-Code: 200
Encoding: ISO-8859-1
Content-Type: application/json
Headers: {content-type=[application/json], Date=[Thu, 14 Mar 2013 16:43:51
GMT], Server=[Apache-Coyote/1.1], transfer-encoding=[chunked]}
Payload:
[{"sourceId":"1","sourceName":"testdads1","sourceTypeName":"cm","id":"1","nativeId":"testdads1"}]
--------------------------------------
2013-03-14 10:43:56,389 [itor WriteCheck] DEBUG InactivityMonitor             
- org.apache.activemq.transport.InactivityMonitor$2@cab5ff6 10000 ms elapsed
since last write check.
2013-03-14 10:43:56,527 [itor WriteCheck] DEBUG InactivityMonitor             
- org.apache.activemq.transport.InactivityMonitor$2@1e9a4a88 10000 ms
elapsed since last write check.
2013-03-14 10:43:56,528 [itor WriteCheck] DEBUG InactivityMonitor             
- org.apache.activemq.transport.InactivityMonitor$2@2393366a 10000 ms
elapsed since last write check.
2013-03-14 10:43:58,307  INFO [com.company.apc.processor.SourceIdProcessor]
- SourceIdProcessor
2013-03-14 10:43:59,457  INFO
[com.company.apc.processor.StartPuMsgFlowProcessor] - PuMsgFlowProcessor





--
View this message in context: http://camel.465427.n5.nabble.com/The-exchange-in-body-object-doesn-t-include-the-respond-when-cxf-rs-restfull-endpoint-is-called-tp5729207.html
Sent from the Camel - Users mailing list archive at Nabble.com.