Hi Willem,

I've got the last 1.3 SPAPSHOT and the problem is gone.

Now I have another one. 

It is possible to do this?

--------JAVA CODE--BEGIN-------------
  from(cxfRouter).to(activeMQQueue);
  from(activeMQQueue).to(cxfService);
--------JAVA CODE--END-------------

When I try this configuration, I got this exception:
--------EXCEPTION--BEGIN-------------
14/01/2008 15:16:21 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
INFO: Interceptor has thrown exception, unwinding now
java.lang.NullPointerException
        at
org.apache.cxf.interceptor.MessageSenderInterceptor.getConduit(MessageSenderInterceptor.java:71)
        at
org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(MessageSenderInterceptor.java:46)
        at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
        at
org.apache.camel.component.cxf.interceptors.AbstractInvokerInterceptor.handleMessage(AbstractInvokerInterceptor.java:95)
        at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
        at
org.apache.camel.component.cxf.CxfMessageObserver.onMessage(CxfMessageObserver.java:83)
        at
org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:284)
        at
org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:240)
        at
org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:54)
        at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
        at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
        at org.mortbay.jetty.Server.handle(Server.java:313)
        at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
        at
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:844)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:726)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
        at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
        at
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
14/01/2008 15:16:21 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
--------EXCEPTION--END-------------

If I try this route:
--------JAVA CODE--BEGIN-------------
  from(cxfRouter).to(activeMQQueue).to(cxfService);
--------JAVA CODE--END-------------

The external client is called but the message is note dequeued from the JMS
queue.

Thank you,

Wilson



willem.jiang wrote:
> 
> Hi Wilson,
> 
> I just traced the code and find a way to fix this issue and it will be 
> in the trunk soon :)
> 
> Willem.
> 
> Wilson wrote:
>> Hi Willem,
>>
>> Issue created: https://issues.apache.org/activemq/browse/CAMEL-286
>>
>> Best regards,
>>
>> Wilson
>>
>>
>> willem.jiang wrote:
>>   
>>> Hi Wilson,
>>>
>>> Yes , it must be a camel-cxf component's bug. Could you fill a JIRA[1] 
>>> for it ?
>>>
>>> [1]http://issues.apache.org/activemq/browse/CAMEL
>>>
>>> Willem.
>>>
>>> Wilson wrote:
>>>     
>>>> Hi,
>>>>
>>>> I found a workaround for the problem. I added a processor after the CXF
>>>> router endpoint:
>>>>
>>>> -------JAVA-CODE--BEGIN-------------------------------------------
>>>>            String anyEndpoint = "activemq:pedidos";
>>>>            
>>>>         from(StringUtils.join(cxfRouterURI)).process(new Processor(){
>>>>                    public void process(Exchange exchange) throws Exception 
>>>> {
>>>>                            exchange.setOut(exchange.getIn());
>>>>                    }
>>>>         }).to(anyEndpoint).to(StringUtils.join(cxfServiceURI));
>>>> -------JAVA-CODE--END-------------------------------------------
>>>>
>>>> Now it is working.
>>>>
>>>> I think there is a bug in CXF Camel code.
>>>>
>>>> --
>>>> Wilson
>>>>
>>>>
>>>> Wilson wrote:
>>>>   
>>>>       
>>>>> Hi Willem,
>>>>>
>>>>> I am using Camel 1.3. I am using Maven to build the project. Today I
>>>>> updated to the snapshot released on 2008-01-09 but the problem is
>>>>> still
>>>>> there.
>>>>>
>>>>> Thank you.
>>>>>
>>>>> Wilson
>>>>>
>>>>>
>>>>> willem.jiang wrote:
>>>>>     
>>>>>         
>>>>>> Hi Wilson,
>>>>>>
>>>>>> Which version of Camel are you using?
>>>>>> Please try out Camel 1.3 snapshot which fixed a camel-cxf component's 
>>>>>> issue which can't pass the exchange back form the cxf producer.
>>>>>>
>>>>>> Willem.
>>>>>>
>>>>>> Wilson wrote:
>>>>>>       
>>>>>>           
>>>>>>> Hi Willem,
>>>>>>>
>>>>>>> Thank you for your reply!
>>>>>>>
>>>>>>> I changed my code in order to use a SEI to describe the Web Service.
>>>>>>> Now
>>>>>>> it
>>>>>>> is working fine but I am having problems when I add an endpoint
>>>>>>> between
>>>>>>> the
>>>>>>> cxf endpoints.
>>>>>>>
>>>>>>> The (working) code looks like this:
>>>>>>>
>>>>>>> --------------------------------------------------------
>>>>>>> package com.tc.eai;
>>>>>>>
>>>>>>> import org.apache.camel.builder.RouteBuilder;
>>>>>>> import org.apache.camel.spring.Main;
>>>>>>> import org.apache.commons.lang.StringUtils;
>>>>>>>
>>>>>>> public class MyRouteBuilder extends RouteBuilder {
>>>>>>>
>>>>>>>         private static String ROUTER_ADDRESS =
>>>>>>> "http://localhost:9003/pedidoService";;
>>>>>>>         private static String DATA_FORMAT = "dataFormat=MESSAGE";
>>>>>>>         private static String SERVICE_NAME =
>>>>>>> "serviceName=%7bhttp://www.tc.com/pedido%7dpedido";;
>>>>>>>         private static String SERVICE_CLASS =
>>>>>>> "serviceClass=com.tc.eai.PedidoService";
>>>>>>>         private static String PORT_NAME =
>>>>>>> "portName=%7bhttp://www.tc.com/pedido%7dpedidoSOAP";;
>>>>>>>         private static String SERVICE_ADDRESS =
>>>>>>> "http://localhost:9000/pedidoService";;
>>>>>>>         
>>>>>>>     /**
>>>>>>>      * A main() so we can easily run these routing rules in our IDE
>>>>>>>      */
>>>>>>>     public static void main(String... args) {
>>>>>>>         Main.main(args);
>>>>>>>     }
>>>>>>>
>>>>>>>     /**
>>>>>>>      * Lets configure the Camel routing rules using Java code...
>>>>>>>      */
>>>>>>>     public void configure() {
>>>>>>>         //-- Router receives requests from external clients and send to
>>>>>>> channel
>>>>>>>         String[] cxfRouterURI = {
>>>>>>>                 "cxf://"
>>>>>>>                 ,ROUTER_ADDRESS
>>>>>>>                 ,"?"
>>>>>>>                 ,DATA_FORMAT
>>>>>>>                 ,"&"
>>>>>>>                 ,SERVICE_NAME
>>>>>>>                 ,"&"
>>>>>>>                 ,SERVICE_CLASS
>>>>>>>                 ,"&"
>>>>>>>                 ,PORT_NAME
>>>>>>>         };
>>>>>>>
>>>>>>>         //-- Service points to external web service. The request routed
>>>>>>> by
>>>>>>> the
>>>>>>> Router 
>>>>>>>         //-- is send to the external service provider
>>>>>>>         String[] cxfServiceURI = {
>>>>>>>                 "cxf://"
>>>>>>>                 ,SERVICE_ADDRESS
>>>>>>>                 ,"?"
>>>>>>>                 ,DATA_FORMAT
>>>>>>>                 ,"&"
>>>>>>>                 ,SERVICE_NAME
>>>>>>>                 ,"&"
>>>>>>>                 ,SERVICE_CLASS
>>>>>>>                 ,"&"
>>>>>>>                 ,PORT_NAME
>>>>>>>         };
>>>>>>>
>>>>>>>        
>>>>>>> from(StringUtils.join(cxfRouterURI)).to(StringUtils.join(cxfServiceURI));
>>>>>>>     }
>>>>>>> }
>>>>>>> --------------------------------------------------------
>>>>>>>
>>>>>>> When change the route this way:
>>>>>>>
>>>>>>>         String anyEndpoint = "log:org.apache.camel?level=DEBUG";
>>>>>>>         
>>>>>>>        
>>>>>>> from(StringUtils.join(cxfRouterURI)).to(anyEndpoint).to(StringUtils.join(cxfServiceURI));
>>>>>>>
>>>>>>> I get this error:
>>>>>>>
>>>>>>> ------Exception Begin----------------------------
>>>>>>> 09/01/2008 18:32:40 org.apache.cxf.phase.PhaseInterceptorChain
>>>>>>> doIntercept
>>>>>>> INFO: Interceptor has thrown exception, unwinding now
>>>>>>> org.apache.cxf.interceptor.Fault
>>>>>>>         at
>>>>>>> org.apache.camel.component.cxf.interceptors.RawMessageContentRedirectInterceptor.handleMessage(RawMessageContentRedirectInterceptor.java:43)
>>>>>>>         at
>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>>>>>>>         at
>>>>>>> org.apache.camel.component.cxf.invoker.CxfClient.invokeWithMessageStream(CxfClient.java:137)
>>>>>>>         at
>>>>>>> org.apache.camel.component.cxf.invoker.CxfClient.dispatch(CxfClient.java:89)
>>>>>>>         at
>>>>>>> org.apache.camel.component.cxf.CxfProducer.process(CxfProducer.java:202)
>>>>>>>         at
>>>>>>> org.apache.camel.component.cxf.CxfProducer.process(CxfProducer.java:152)
>>>>>>>         at
>>>>>>> org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsynProcessorBridge.process(AsyncProcessorTypeConverter.java:44)
>>>>>>>         at
>>>>>>> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:73)
>>>>>>>         at
>>>>>>> org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:143)
>>>>>>>         at
>>>>>>> org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:87)
>>>>>>>         at
>>>>>>> org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
>>>>>>>         at
>>>>>>> org.apache.camel.processor.Pipeline.process(Pipeline.java:85)
>>>>>>>         at
>>>>>>> org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:40)
>>>>>>>         at
>>>>>>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:44)
>>>>>>>         at
>>>>>>> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:68)
>>>>>>>         at
>>>>>>> org.apache.camel.component.cxf.CamelInvoker.invoke(CamelInvoker.java:71)
>>>>>>>         at
>>>>>>> org.apache.camel.component.cxf.interceptors.AbstractInvokerInterceptor.handleMessage(AbstractInvokerInterceptor.java:65)
>>>>>>>         at
>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>>>>>>>         at
>>>>>>> org.apache.camel.component.cxf.CxfMessageObserver.onMessage(CxfMessageObserver.java:83)
>>>>>>>         at
>>>>>>> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:284)
>>>>>>>         at
>>>>>>> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:240)
>>>>>>>         at
>>>>>>> org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:54)
>>>>>>>         at
>>>>>>> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
>>>>>>>         at
>>>>>>> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
>>>>>>>         at
>>>>>>> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
>>>>>>>         at org.mortbay.jetty.Server.handle(Server.java:313)
>>>>>>>         at
>>>>>>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
>>>>>>>         at
>>>>>>> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:844)
>>>>>>>         at
>>>>>>> org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:726)
>>>>>>>         at
>>>>>>> org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
>>>>>>>         at
>>>>>>> org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
>>>>>>>         at
>>>>>>> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
>>>>>>>         at
>>>>>>> org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
>>>>>>> Caused by: java.lang.NullPointerException
>>>>>>>         at
>>>>>>> org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1025)
>>>>>>>         at org.apache.commons.io.IOUtils.copy(IOUtils.java:999)
>>>>>>>         at
>>>>>>> org.apache.camel.component.cxf.interceptors.RawMessageContentRedirectInterceptor.handleMessage(RawMessageContentRedirectInterceptor.java:39)
>>>>>>>         ... 32 more
>>>>>>> ------Exception End----------------------------
>>>>>>>
>>>>>>> The same problem happens with seda and activemq endpoints.
>>>>>>>
>>>>>>> Thank you,
>>>>>>>
>>>>>>> Wilson
>>>>>>>
>>>>>>>
>>>>>>> Hi Wilson,
>>>>>>>
>>>>>>> I am afraid you need to provide the SEI  class for camel-cxf
>>>>>>> component 
>>>>>>> to initiate the endpoint.
>>>>>>> If you do not want to unmarshal the request message , I think you
>>>>>>> could 
>>>>>>> use soap message or raw message data formate.
>>>>>>> Now I am thinking to do some refactoring  work to enable the web 
>>>>>>> services endpoint without SEI class.
>>>>>>>
>>>>>>> Willem.
>>>>>>>
>>>>>>>
>>>>>>>   
>>>>>>>         
>>>>>>>             
>>>>>>       
>>>>>>           
>>>>>     
>>>>>         
>>>>   
>>>>       
>>>
>>>     
>>
>>   
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/About-JIRA-issue-CAMEL-180-tp14702992s22882p14806628.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to