Thanks A LOT for the answer mr. Claus, i used

<bean beanType="com.mycompany.MyPojo" method="getHtmlCode"/>

And works great!!!.  I do have a follow up question if you don't mind, it's
also about data injection. My route class currently  looks like this:


MyRouteClass extends RouteBuilder{

private String myVar1;
//getter and setter for myVar1

public void configure() throws Exception {
                    FileInputStream fis = new
FileInputStream("myroute.xml");
                    RoutesDefinition routes =
 getContext().loadRoutesDefinition(fis);
 }

}

And in my xml file i have this:

<from uri="quartz://fetchUrl?cron=0+0/1+*+*+*+?"/>
            <setProperty propertyName="coolProperty">
                <simple>myVar1</simple>
            </setProperty>


Obviously the property is getting the literal value "myVar1" which is
something i don't want. I need to send the value contained on
the instance member myVar1, is there any way i could achieve this??

Thanks A LOT in advance



2011/7/28 Claus Ibsen <claus.ib...@gmail.com>

> Camel is not a bean container. You have to have the bean installed already.
> For example in the spring xml file.
>
> However you can tell Camel the FQN of the bean class and it can invoke
> it directly, in case it has a default ctr.
>
> In the camel route do something like:
> <bean type="com.foo.MyBean"/>
>
> The attribute may have a slightly different name, than type.
>
>
> On Thu, Jul 28, 2011 at 5:08 PM, rogelio_sevilla1
> <rogelio.sevil...@gmail.com> wrote:
> > I think i was wrong, the info on this page:
> >
> > http://camel.apache.org/loading-routes-from-xml-files.html
> >
> > is the right answer, however, i think i'm missing something. Currently, i
> > have a camel route that looks like this:
> >
> > public void configure() throws Exception {
> >                   FileInputStream fis = new
> FileInputStream("myroute.xml");
> >                    RoutesDefinition routes =
> > getContext().loadRoutesDefinition(fis);
> > }
> >
> >
> > And my  myroute.xml  file looks like this:
> >
> >
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> >    <routes xmlns="http://camel.apache.org/schema/spring";>
> >        <bean id="myPojo" class="com.mycompany.MyPojo"/>
> >        <route>
> >            <from uri="quartz://fetchUrl?cron=0+0/1+*+*+*+?"/>
> >            <setProperty propertyName="contract">
> >                <simple>contract</simple>
> >            </setProperty>
> >            <setProperty propertyName="dataFeedSource">
> >                <simple>dataFeedSource</simple>
> >            </setProperty>
> >            <setProperty propertyName="dataFeedType">
> >                <simple>dataFeedType</simple>
> >            </setProperty>
> >            <setProperty propertyName="url">
> >                <simple>url</simple>
> >            </setProperty>
> >            <bean ref="myPojo" method="getHtmlCode"/>
> >            <bean ref="myPojo" method="getUrls"/>
> >            <split>
> >                <tokenize  token="\n"/>
> >                <to uri="seda:theUrls"/>
> >            </split>
> >        </route>
> >    <route>
> >        <from uri="seda:theUrls?concurrentConsumers=8"/>
> >        <bean ref="myPojo" method="setUrl"/>
> >        <to uri="http://dummyhost"; />
> >        <bean ref="myPojo" method="processContent"/>
> >    </route>
> >    </routes>
> >
> >
> >
> > As you can see, i'm declaring a bean using this:
> >
> >        <bean id="myPojo" class="com.mycompany.MyPojo"/>
> >
> > However, at the moment of running this code, i'm getting this exception:
> >
> >
> > Failed to create route route1 at: >>> Bean[ref:myPojo method:
> getHtmlCode]
> >  because of No bean could be found in the registry for: myPojo
> >
> > Caused by: org.apache.camel.NoSuchBeanException: No bean could be found
> in
> > the registry for: myPojo
> >        at
> >
> org.apache.camel.component.bean.RegistryBean.getBean(RegistryBean.java:68)
> >        at
> >
> org.apache.camel.model.BeanDefinition.createProcessor(BeanDefinition.java:155)
> >        at
> >
> org.apache.camel.model.ProcessorDefinition.makeProcessor(ProcessorDefinition.java:433)
> >        at
> >
> org.apache.camel.model.ProcessorDefinition.addRoutes(ProcessorDefinition.java:181)
> >        at
> >
> org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:815)
> >
> >
> >
> > Am i missing another step on the process??
> >
> > --
> > View this message in context:
> http://camel.465427.n5.nabble.com/Injecting-data-to-routes-loaded-from-xml-file-tp4639765p4643056.html
> > Sent from the Camel - Users mailing list archive at Nabble.com.
> >
>
>
>
> --
> Claus Ibsen
> -----------------
> FuseSource
> Email: cib...@fusesource.com
> Web: http://fusesource.com
> Twitter: davsclaus, fusenews
> Blog: http://davsclaus.blogspot.com/
> Author of Camel in Action: http://www.manning.com/ibsen/
>

Reply via email to