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(PojoSupport.java
> :200)
>        at
>
> net.sourceforge.gaswerk.samples.jmagazin.ReceiverComponent.onMessageExchange
> (ReceiverComponent.java:37)
>        at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(
> 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(SedaFlow.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(ThreadPoolExecutor.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/

Reply via email to