camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chris Wolf <cwolf.a...@gmail.com>
Subject Re: Camel routing issue
Date Mon, 01 Apr 2013 13:18:03 GMT
Prabu,

There's a note on the Camel website about a potential compiler error
when using "otherwise()", along with a workaround. Unfortunately, I
can't find it now.

On the other hand, I think this might work:

                from("direct:start")
                .choice().when(header("Type").isNotNull())
                    .recipientList(simple("activemq.Inbound.${header.Type}"))
                .end() // <=== added this to close "when" block
                .otherwise()
                    .to("activemq:queue:Invalid.queue")
                .endChoice();

N.B. this only solved compilation - I didn't actually do a runtime test.

    -Chris

On Mon, Apr 1, 2013 at 7:18 AM, prabumca06@gmail.com
<prabumca06@gmail.com> wrote:
> Chris,The following code worked fine.
>
> .choice().when(header("Type").isNotNull())
>          .recipientList(simple("activemq.Inbound.${header.Type}"))
> .endChoice()
>
> but,one issue is that.I added *.otherwise()* , it giving error.
>
> .choice().when(header("Type").isNotNull())
>      .recipientList(simple("activemq.Inbound.${header.Type}"))
> *.otherwise()
>     .to("activemq:queue:Invalid.queue")*
> .endChoice();
>
> please kindly help me.
>
>
>
> On Mon, Apr 1, 2013 at 2:32 PM, Prabu <prabumca06@gmail.com> wrote:
>
>> Like Chris suggest i tried below way
>>
>>
>>  .when(header("TYPE").isNotNull())
>>                .to("activemq:queue.Inbound.${header.Type}")
>>
>>
>> But queue created *${header.Type}* like this not *Inbound.test*
>>
>> Please kindly give me example.
>>
>> *Regards*
>> Prabu.N
>>
>>
>>
>> On Mon, Apr 1, 2013 at 2:03 PM, Claus Ibsen-2 [via Camel] <
>> ml-node+s465427n5730152h14@n5.nabble.com> wrote:
>>
>>> Hi
>>>
>>> See this EIP
>>> http://camel.apache.org/content-enricher.html
>>>
>>> About pollEnrich.
>>>
>>> Though pollEnrich currently does support dynamic uris. Its on the
>>> roadmap,
>>> for Camel 3.0.
>>> It requires an API change and thus isn't so easy to implement currently
>>> on
>>> 2.x.
>>>
>>> You can always use a java bean / camel processor, and consume the ftp
>>> file
>>> from java code.
>>> For example using consumer template.
>>>
>>> As you use FTP you may want to set disconnect=true so the connect is not
>>> remained open after usage.
>>>
>>>
>>>
>>> On Sun, Mar 31, 2013 at 7:51 PM, Chris Wolf <[hidden email]<http://user/SendEmail.jtp?type=node&node=5730152&i=0>>
>>> wrote:
>>>
>>> > Ok, I'm starting to get it - a little bit.  As for my concrete
>>> > example, so far, I have:
>>> >
>>> >                 from("direct:start")
>>> >                 .beanRef("config")
>>> >                 .convertBodyTo(Document.class)
>>> >                 .recipientList().xquery(
>>> >                     "concat('ftp://'" +
>>> >                     ",//remote[vendorId/@value='CBOE34']/server/@value"
>>> +
>>> >
>>> >
>>> >
>>> ",//remote[vendorId/@value='CBOE34']/param[name/@value='directory']/value/@value"
>>>
>>> > +
>>> >                     ",'?noop=true&amp;username='" +
>>> >
>>> ",//remote[vendorId/@value='CBOE34']/username/@value" +
>>> >                     ",'&amp;password='" +
>>> >
>>> > ",//remote[vendorId/@value='CBOE34']/password/@value)", String.class);
>>> >
>>> > Here's the problem - this will create an FTP Producer - that's not
>>> > what I need.  I need a dynamically
>>> > constructed URI for a polling FTP consumer.  I don't think
>>> > "recipientList" will work...   Any ideas?
>>> >
>>> > Thanks,
>>> >
>>> > Chris
>>> >
>>> > On Sun, Mar 31, 2013 at 10:27 AM, Chris Wolf <[hidden email]<http://user/SendEmail.jtp?type=node&node=5730152&i=1>>
>>> wrote:
>>> > > Hi Claus,
>>> > >
>>> > > I hate to ask this - but I still don't get it.  I thought
>>> > > "recipientList" was for sending to multiple, runtime-defined
>>> > > recipients.  I don't see how this
>>> > > answers the question of sending to one, single recipient, whose URI
>>> is
>>> > > dynamically constructed - and in my use-case the dynamic settings
>>> > > are not in properties - so "simple" (property place-holders) won't
>>> help
>>> > me.
>>> > >
>>> > > Let me give you a concrete example.  I need to do an ftp download and
>>> > > the connection information comes from up-stream in the route in the
>>> > > form of XML (DOM - a Document instance).  Currently, I am trying to
>>> do
>>> > > this with bean binding and method params decorated with @XPath
>>> > > pointing into the Document with the ftp settings and inside the
>>> > > this method doing:
>>> > >
>>> > > FtpComponent ftpComponent = context.getComponent("ftp",
>>> > FtpComponent.class);
>>> > >
>>> > > ..and then attempt to get the endpoint and call createConsumer(...).
>>> > > I'm sure this is not the right way to do it, but I don't see how else
>>> > > - any ideas?
>>> > >
>>> > > Thanks,
>>> > >
>>> > >
>>> > > Chris
>>> > >
>>> > > On Sun, Mar 31, 2013 at 2:28 AM, Claus Ibsen <[hidden email]<http://user/SendEmail.jtp?type=node&node=5730152&i=2>>
>>>
>>> > wrote:
>>> > >> Hi
>>> > >>
>>> > >> See this FAQ
>>> > >> http://camel.apache.org/how-do-i-use-dynamic-uri-in-to.html
>>> > >>
>>> > >>
>>> > >>
>>> > >>
>>> > >> On Sun, Mar 31, 2013 at 5:22 AM, [hidden email]<http://user/SendEmail.jtp?type=node&node=5730152&i=3>
>>> > >> <[hidden email]<http://user/SendEmail.jtp?type=node&node=5730152&i=4>>wrote:
>>>
>>> > >>
>>> > >>> Thanks Walzer..
>>> > >>> *
>>> > >>> *
>>> > >>> *Queston1:
>>> > >>>
>>> > >>> *
>>> > >>> *Example*
>>> > >>>
>>> > >>> .when(header("foo").isEqualTo("bar"))
>>> > >>>                     .to("direct:b")
>>> > >>>
>>> > >>> In my case i have to add more than 80 condition and forwards
to 80
>>> > >>> different queues.
>>> > >>>
>>> > >>> Above example i can only hard-code queue name,But what i want
is
>>> below.
>>> > >>>
>>> > >>> * .when(header("Type").isNotNull())
>>> > >>>     .to("activemq.Inbound."+header("Type"))
>>> > >>> *
>>> > >>>
>>> > >>> Example:If queue type is test,It should forward to *Inbound.test*
>>> > queue.
>>> > >>>
>>> > >>> Above example i tried,but it did not worked,created queue something
>>> > >>> like this *Inbound.header("type")*
>>> > >>>
>>> > >>> *Question2*:
>>> > >>>
>>> > >>> from("direct:a")
>>> > >>>             .multicast().to("direct:b", "direct:c", "direct:d");
>>> > >>>
>>> > >>> Based on messages header and content type i want forward to
>>> different
>>> > >>> queue.
>>> > >>>
>>> > >>> condition will be *OR *and *AND*.How can i do that like above
>>> example.*
>>> > >>> *
>>> > >>>
>>> > >>> Thanks in advance*
>>> > >>> *
>>> > >>>
>>> > >>> *Regards*
>>> > >>>
>>> > >>> Prabu.N
>>> > >>>
>>> > >>>
>>> > >>>
>>> > >>>
>>> > >>>
>>> > >>>
>>> > >>>
>>> > >>>
>>> > >>>
>>> > >>>
>>> > >>>
>>> > >>>
>>> > >>>
>>> > >>> On Sun, Mar 31, 2013 at 2:43 AM, Walzer, Thomas [via Camel]
<
>>> > >>> [hidden email]<http://user/SendEmail.jtp?type=node&node=5730152&i=5>>
>>> wrote:
>>> > >>>
>>> > >>> > Hi,
>>> > >>> >
>>> > >>> > you could start by reading Claus´ book (p. 44ff) which
has a
>>> perfect
>>> > >>> > example or http://camel.apache.org/content-based-router.html
(just
>>>
>>> > >>> > replace the direct: with your queues).
>>> > >>> > If you need to fire your messages to multiple queues:
>>> > >>> > http://camel.apache.org/publish-subscribe-channel.html
shows you
>>> the
>>> > >>> > various ways.
>>> > >>> > When you get the concepts you can just "lego" them together.
>>> > >>> >
>>> > >>> > Regards, Thomas.
>>> > >>> >
>>> > >>> > Am 30.03.2013 um 19:05 schrieb "[hidden email]<
>>> > >>> http://user/SendEmail.jtp?type=node&node=5730116&i=0>"
>>> > >>> > <[hidden email] <
>>> > http://user/SendEmail.jtp?type=node&node=5730116&i=1>>:
>>> > >>> >
>>> > >>> > > Hi Claus,
>>> > >>> > >
>>> > >>> > > Thanks so much Clus for help.It is working now.
>>> > >>> > >
>>> > >>> > > I need your guidance for the following requirement.
>>> > >>> > >
>>> > >>> > > 1.I have one *inbound queue* it will receive message
frequently
>>> > from my
>>> > >>> > > application.
>>> > >>> > > 2.From *inbound queue* i need camel routing to move
message
>>> from
>>> > >>> > > another *message
>>> > >>> > > based inbound queue* based on message header value.
>>> > >>> > > 3.From *message based inbound queue *i* *need camel
routing to
>>> move
>>> > >>> > message
>>> > >>> > > to *one or more outbound queue *based on message
content*
>>> > >>> > > *
>>> > >>> > >
>>> > >>> > > I need *camel java DSL*sample code for above requirement.*
>>> > >>> > > *
>>> > >>> > > *
>>> > >>> > > *
>>> > >>> > > *Thanks in advance*
>>> > >>> > >
>>> > >>> > >
>>> > >>> > > On Sat, Mar 30, 2013 at 3:10 PM, Claus Ibsen-2 [via
Camel] <
>>> > >>> > > [hidden email] <
>>> > http://user/SendEmail.jtp?type=node&node=5730116&i=2>>
>>> > >>> > wrote:
>>> > >>> > >
>>> > >>> > >> Hi
>>> > >>> > >>
>>> > >>> > >> Do as the exception tells you. Check route 2.
You route from
>>> > >>> > >> "Inbound.SSS.TestEvent". And that is now know
to Camel.
>>> > >>> > >>
>>> > >>> > >> Maybe you need to add "activemq:" as prefix so
its
>>> > >>> > >> "activemq:Inbound.SSS.TestEvent".
>>> > >>> > >>
>>> > >>> > >>
>>> > >>> > >> On Fri, Mar 29, 2013 at 7:01 PM, [hidden email]<
>>> > >>> > http://user/SendEmail.jtp?type=node&node=5730109&i=0>
>>> > >>> > >> <[hidden email] <
>>> > http://user/SendEmail.jtp?type=node&node=5730109&i=1
>>> > >>> >>
>>> > >>> >
>>> > >>> > >> wrote:
>>> > >>> > >>
>>> > >>> > >>>
>>> > >>> > >>> I have activemmq  Project in that i have
following
>>> requirement
>>> > >>> > >>>
>>> > >>> > >>> 1.Move message from Inbound queue to type
based inbound
>>> queue.
>>> > >>> > >>> 2.Move message from Message type inbound
queue to outbound
>>> queue
>>> > >>> > >>>
>>> > >>> > >>> I have created two bean for to achieve this.
>>> > >>> > >>>
>>> > >>> > >>> 1.one for move from inbound to message type
 inbound queue
>>> > >>> > >>> 2.one for move from inbound to outbound queue.
>>> > >>> > >>>
>>> > >>> > >>> I have following entry in camel.xml
>>> > >>> > >>>
>>> > >>> > >>>   <camelContext id="camel" xmlns="
>>> > >>> > http://camel.apache.org/schema/spring">
>>> > >>> > >>
>>> > >>> > >>>
>>> > >>> > >>>                <routeBuilder ref="routeBuilder"
/>
>>> > >>> > >>>            <routeBuilder ref="routeBuilder1"
/>
>>> > >>> > >>>
>>> > >>> > >>>    </camelContext>
>>> > >>> > >>>
>>> > >>> > >>>    <bean id="routeBuilder"
>>> > >>> > >>> class="com.camel.routes.SinglecastRouteBuilder"/>
>>> > >>> > >>>    <bean id="recipientsGenerator"
>>> > >>> > >>> class="com.camel.routes.TypeSpecificListBean"/>
>>> > >>> > >>>    <bean id="routeBuilder1"
>>> > >>> > >>> class="com.camel.routes.MulticastRouteBuilder"/>
>>> > >>> > >>>    <bean id="recipientsGenerator1"
>>> > >>> > >>> class="com.camel.routes.RecipientListBean"/>
>>> > >>> > >>>
>>> > >>> > >>> When i run application i am getting following
error.
>>> > >>> > >>>
>>> > >>> > >>> * java.lang.Exception:
>>> org.apache.camel.RuntimeCamelException:
>>> > >>> > >>> org.apache.camel.Fa
>>> > >>> > >>> iledToCreateRouteException: Failed to create
route route2:
>>> > >>> > >>> Route[[From[Inbound.G
>>> > >>> > >>> MD.TestEvent]] -> [Multicast[[Bean[ref:...
because of No
>>> endpoint
>>> > >>> > could
>>> > >>> > >> be
>>> > >>> > >>> found
>>> > >>> > >>> for: Inbound.SSS.TestEvent, please check
your classpath
>>> contains
>>> > the
>>> > >>> > >> needed
>>> > >>> > >>> Cam
>>> > >>> > >>> el component jar.*
>>> > >>> > >>>
>>> > >>> > >>> I am not sure i am missing any configuration,Please
kindly
>>> help
>>> > me
>>> > >>> > >>>
>>> > >>> > >>>
>>> > >>> > >>>
>>> > >>> > >>>
>>> > >>> > >>> --
>>> > >>> > >>> View this message in context:
>>> > >>> > >>
>>> > http://camel.465427.n5.nabble.com/Camel-routing-issue-tp5730094.html
>>> > >>> > >>> Sent from the Camel - Users mailing list
archive at
>>> Nabble.com.
>>> > >>> > >>
>>> > >>> > >>
>>> > >>> > >>
>>> > >>> > >> --
>>> > >>> > >> Claus Ibsen
>>> > >>> > >> -----------------
>>> > >>> > >> Red Hat, Inc.
>>> > >>> > >> FuseSource is now part of Red Hat
>>> > >>> > >> Email: [hidden email]<
>>> > >>> > http://user/SendEmail.jtp?type=node&node=5730109&i=2>
>>> > >>> > >> Web: http://fusesource.com
>>> > >>> > >> Twitter: davsclaus
>>> > >>> > >> Blog: http://davsclaus.com
>>> > >>> > >> Author of Camel in Action: http://www.manning.com/ibsen
>>> > >>> > >>
>>> > >>> > >>
>>> > >>> > >> ------------------------------
>>> > >>> > >> If you reply to this email, your message will
be added to the
>>> > >>> > discussion
>>> > >>> > >> below:
>>> > >>> > >>
>>> > >>> > >>
>>> > >>> >
>>> > >>> > >> .
>>> > >>> > >> NAML<
>>> > >>> >
>>> > >>>
>>> >
>>> http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml
>>> > >>> >
>>> > >>> >
>>> > >>> > >>
>>> > >>> > >
>>> > >>> > >
>>> > >>> > >
>>> > >>> > > --
>>> > >>> > > Thanks & Regards
>>> > >>> > > Prabu.N
>>> > >>> > >
>>> > >>> > >
>>> > >>> > >
>>> > >>> > >
>>> > >>> > > --
>>> > >>> > > View this message in context:
>>> > >>> >
>>> > >>>
>>> >
>>> http://camel.465427.n5.nabble.com/Camel-routing-issue-tp5730094p5730115.html
>>> > >>> >
>>> > >>> > > Sent from the Camel - Users mailing list archive
at Nabble.com.
>>> > >>> >
>>> > >>> >
>>> > >>> >
>>> > >>> > ------------------------------
>>> > >>> >  If you reply to this email, your message will be added
to the
>>> > discussion
>>> > >>> > below:
>>> > >>> >
>>> > >>> >
>>> > >>>
>>> >
>>> http://camel.465427.n5.nabble.com/Camel-routing-issue-tp5730094p5730116.html
>>> > >>> >  To unsubscribe from Camel routing issue, click here<
>>> > >>>
>>> > >>> >
>>> > >>> > .
>>> > >>> > NAML<
>>> > >>>
>>> >
>>> http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml
>>> > >>> >
>>> > >>> >
>>> > >>>
>>> > >>>
>>> > >>>
>>> > >>> --
>>> > >>> Thanks & Regards
>>> > >>>  Prabu.N
>>> > >>>
>>> > >>>
>>> > >>>
>>> > >>>
>>> > >>> --
>>> > >>> View this message in context:
>>> > >>>
>>> >
>>> http://camel.465427.n5.nabble.com/Camel-routing-issue-tp5730094p5730118.html
>>> > >>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>> > >>>
>>> > >>
>>> > >>
>>> > >>
>>> > >> --
>>> > >> Claus Ibsen
>>> > >> -----------------
>>> > >> Red Hat, Inc.
>>> > >> FuseSource is now part of Red Hat
>>> > >> Email: [hidden email]<http://user/SendEmail.jtp?type=node&node=5730152&i=6>
>>> > >> Web: http://fusesource.com
>>> > >> Twitter: davsclaus
>>> > >> Blog: http://davsclaus.com
>>> > >> Author of Camel in Action: http://www.manning.com/ibsen
>>> >
>>>
>>>
>>>
>>> --
>>> Claus Ibsen
>>> -----------------
>>> Red Hat, Inc.
>>> FuseSource is now part of Red Hat
>>> Email: [hidden email]<http://user/SendEmail.jtp?type=node&node=5730152&i=7>
>>> Web: http://fusesource.com
>>> Twitter: davsclaus
>>> Blog: http://davsclaus.com
>>> Author of Camel in Action: http://www.manning.com/ibsen
>>>
>>>
>>> ------------------------------
>>>  If you reply to this email, your message will be added to the
>>> discussion below:
>>>
>>> http://camel.465427.n5.nabble.com/Camel-routing-issue-tp5730094p5730152.html
>>>  To unsubscribe from Camel routing issue, click here<http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=5730094&code=cHJhYnVtY2EwNkBnbWFpbC5jb218NTczMDA5NHw4OTY0MTU3ODg=>
>>> .
>>> NAML<http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>>>
>>
>>
>>
>> --
>> Thanks & Regards
>>  Prabu.N
>>
>
>
>
> --
> Thanks & Regards
>  Prabu.N
>
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/Camel-routing-issue-tp5730094p5730157.html
> Sent from the Camel - Users mailing list archive at Nabble.com.

Mime
View raw message