you're right ;-) I chnaged the sample to use the EchoComponent and .... surprise surprise... it works.
Thanks! Kristian > -----Ursprüngliche Nachricht----- > Von: Guillaume Nodet [mailto:[EMAIL PROTECTED] > Gesendet: Freitag, 14. Dezember 2007 13:25 > An: [email protected] > Betreff: Re: Usage of Camel > > > Do you send an InOut ? The receiverComponent only handles InOnly or > RObustInOnly iirc. > You may want to try sending an InOnly or use an EchoComponent. > > On Dec 14, 2007 12:28 PM, Kristian Köhler > <[EMAIL PROTECTED]> wrote: > > > I think the recieving component throws the exception. > > > > I'm using the components from ServiceMix (a.p.sm.tck.SenderPojo, > > a.p.sm.tck.ReceiverComponent) with a little "customization" > - i changed > > the QName for the components which is not possible from outside. > > > > The FROM_URI refers to the SenderPoJo. The TO_URI refers to the > > RecieverComponent. > > > > There is the stack trace: > > > > --- 8< --- > > > > 11:03:28,934 | ERROR | eceiver-thread-1 | SedaQueue > > | servicemix.jbi.nmr.flow.seda.SedaQueue$1 136 | > > [EMAIL PROTECTED] > got error > > processing InOut[ > > id: ID:127.0.1.1-116d852085e-4:0 > > status: Done > > role: provider > > endpoint: ExampleService20JBIPort > > in: Unable to display: java.io.IOException: Stream closed > > ] > > javax.jbi.messaging.MessagingException: illegal exchange > status: done > > at > > org.apache.servicemix.jbi.messaging.MessageExchangeImpl.handleSend( > > MessageExchangeImpl.java:626) > > at > > org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend( > > DeliveryChannelImpl.java:385) > > at > > org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send( > > DeliveryChannelImpl.java:431) > > at > > > org.apache.servicemix.components.util.PojoSupport.done(PojoSup > port.java > > :200) > > at > > > > > net.sourceforge.gaswerk.samples.jmagazin.ReceiverComponent.onM > essageExchange > > (ReceiverComponent.java:37) > > at > > > org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.proces > sInBound( > > DeliveryChannelImpl.java:610) > > at > > org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting( > > AbstractFlow.java:170) > > at > > > org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(Sed > aFlow.java > > :167) > > at > > > org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java > > :134) > > at > > java.util.concurrent.ThreadPoolExecutor$Worker.runTask( > > ThreadPoolExecutor.java:885) > > at > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolE > xecutor.java > > :907) > > at java.lang.Thread.run(Thread.java:619) > > > > --- 8< --- > > > > Thanks > > > > Kristian > > > > > > Guillaume Nodet schrieb: > > > Well, this may a bug ... > > > Which exchange is failing : the received one or the one > sent by camel ? > > > Also do you have the full stack trace / related error log ? > > > > > > On Dec 14, 2007 12:08 PM, Kristian Köhler > <[EMAIL PROTECTED]> > > wrote: > > > > > >> Hi > > >> > > >> I'm trying something similar. But encountered problems > with the routing > > >> from and back to JBI. > > >> > > >> I configured a route via Camel RouteBuilder. > > >> > > >> --- 8< --- > > >> ... > > >> from(FROM_URI).to(TO_URI); > > >> ... > > >> --- 8< --- > > >> > > >> Both URIs are JBI URIs ("jbi:endpoint:http://..."). > > >> This sample works fine. > > >> > > >> But when I want to add some more > "transformation/mediation logic" I'm > > >> getting exceptions that the JBI Message Exchange is no > longer ACTIVE. > > >> > > >> "illegal exchange status: done" > > >> > > >> The "transformation logic" is a simple Velocity template which > > >> transforms my request to another format. > > >> > > >> My RouteBuilder look like: > > >> > > >> --- 8< --- > > >> > > >> from(FROM_URI).setHeader("newName2", > > >> constant("Nix")).to("velocity:template.vm").to(TO_URI); > > >> > > >> --- 8< --- > > >> > > >> Any ideas? > > >> > > >> Thanks > > >> > > >> Kristian > > >> > > >> Guillaume Nodet schrieb: > > >>> >From a camel perspective, servicemix / jbi is one of > the numerous > > >> protocols > > >>> supported. > > >>> So your route should looks like: > > >>> > > >>> from("jbi:endpoint:http://servicemix.apache.org/samples/bridge< > > >> http://servicemix.apache.org/samples/bridge> > > >>> /pipeline/endpoint") > > >>> .to("jbi:service:http://servicemix.apache.org/samples/bridge< > > >> http://servicemix.apache.org/samples/bridge> > > >>> /xslt") > > >>> .to(jbi:service:http://servicemix.apache.org/samples/bridge< > > >> http://servicemix.apache.org/samples/bridge> > > >>> /jms") > > >>> > > >>> "jbi" tells camel to use the jbi transport. When > creating a consumer, > > >> it > > >>> will activate a jbi endpoint, else it will use the > delivery channel to > > >> send > > >>> the exchange to the given jbi target. See > > >>> http://servicemix.apache.org/uris.html. Such uris must > be prefixed by > > >> "jbi" > > >>> . > > >>> > > >>> On Dec 14, 2007 11:29 AM, Robert Thullner > <[EMAIL PROTECTED]> wrote: > > >>> > > >>>> Hi > > >>>> > > >>>> I have changed the bridge example so that it is triggered by a > > quartz, > > >>>> that > > >>>> writes out a message to a jms queue in regular > intervals. The only > > >> thing I > > >>>> changed was the http-su to a quartz-su. The example > worked fine. > > >>>> > > >>>> Now I want to replace the EIP component with a camel > component that > > >> does > > >>>> the > > >>>> routing for me. But I have difficulties, because I do > not know how to > > >>>> write > > >>>> camel rule. Here is the > > >>>> simple example from the bridge-eip: > > >>>> > > >>>> <?xml version="1.0"?> > > >>>> <beans xmlns:eip="http://servicemix.apache.org/eip/1.0" > > >>>> xmlns:b="http://servicemix.apache.org/samples/bridge"> > > >>>> > > >>>> <eip:pipeline service="b:pipeline" endpoint="endpoint"> > > >>>> <eip:transformer> > > >>>> <eip:exchange-target service="b:xslt" /> > > >>>> </eip:transformer> > > >>>> <eip:target> > > >>>> <eip:exchange-target service="b:jms" /> > > >>>> </eip:target> > > >>>> </eip:pipeline> > > >>>> > > >>>> </beans> > > >>>> > > >>>> So there is the same pipeline, as it is in the bridge > example. My > > >> problem > > >>>> now is, when I define camel route I do not have the > service attribute > > >> set > > >>>> and therefore servicemix throws an exception. This is > how my camel > > >> context > > >>>> looks like. > > >>>> > > >>>> <beans xmlns="http://www.springframework.org/schema/beans" > > >>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > > >>>> xmlns:b="http://servicemix.apache.org/samples/bridge" > > >>>> xsi:schemaLocation=" > > >>>> http://www.springframework.org/schema/beans > > >>>> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd > >>>> http://activemq.apache.org/camel/schema/spring > >>>> http://activemq.apache.org/camel/schema/spring/camel-spring.xsd"> > >>>> <camelContext xmlns="http://activemq.apache.org/camel/schema/spring" > >>>> useJmx="true" > > >>>> <route> > >>>> <from uri="b:pipeline"/> > >>>> <to uri="b:jms"/> > >>>> </route> > >>>> > >>>> <package>eip.status.servicemix</package> > >>>> </camelContext> > >>>> </beans> > >>>> > >>>> My MyRouteBuilder.jave file is empty. > >>>> Can anybody explain me, how I can use the EIP route in Camel? > >>>> > >>>> When starting servicemix, I get this exception: > >>>> org.apache.camel.RuntimeCamelException: > >>>> org.apache.camel.NoSuchEndpointException: No endpoint could be found > >> for: > >>>> b:pipeline > >>>> > >>>> I understand the exception, because I do not have the b:pipeline > >> defined. > >>>> My > >>>> problem is, that I do not know how to define it in camel. I am using > >>>> servicemix 3.2.1 . > >>>> > >>>> Thanks for any help > >>>> Robert > >>>> > >>>> > >>>> > >>>> > >>>> > >>> > >> -- > >> http://gaswerk.sourceforge.net > >> > > > > > > > > -- > GASwerk - Geronimo Application Assemblies > http://gaswerk.sourceforge.net > -- Cheers, Guillaume Nodet ------------------------ Blog: http://gnodet.blogspot.com/
