Thanks for the pointer. I made the necessary changes to my route but still
unable to make it work!

from("file:.?fileName=my.xml").unmarshal(jaxb).bean(new
ProcessorBean()).to("file:.?fileName=my1.xml");

For convenient sake, I changed the name of the target file (my1.xml). Why
would my ProcessorBean not invoked? Also how can I see that my.xml was
picked up by Camel in the from clause?

Regards,
Jothi

On Fri, Aug 17, 2012 at 12:19 PM, Claus Ibsen <claus.ib...@gmail.com> wrote:

> On Fri, Aug 17, 2012 at 11:26 AM, Joe San <codeintheo...@gmail.com> wrote:
> > Thanks! That solved the problem.
> >
> > Now I'm able to successfully get my example running. But I'm not getting
> > Camel do what I wanted. Here is how my route definition looks like!
> >
> >                 context.addRoutes(new RouteBuilder() {
> >                     public void configure() {
> >                         from("file:my.xml").unmarshal(jaxb).bean(new
> > ProcessorBean()).to("file:my.xml");
> >                     }
> >                 });
> >
> > The my.xml is in the same folder where the class containing the above
> route
> > definition exists. What I'm trying to do is to read the xml, change the
> > value for the name attribute using a processor and write the new xml to
> the
> > same file.
> >
>
> The file component in Camel
> http://camel.apache.org/file2
>
> Requires to be configured with a *starting directory*. If you want to
> pickup a single file by its name, you need to use the fileName option
> for that
>
> from("file:startingDir?fileName=my.xml")...
>
> You may use dot as starting directory to say current dir (a bit odd though)
> from("file:.?fileName=my.xml")...
>
>
> > Regards,
> > Jothi
> >
> > On Fri, Aug 17, 2012 at 10:57 AM, Claus Ibsen <claus.ib...@gmail.com>
> wrote:
> >
> >> On Fri, Aug 17, 2012 at 10:46 AM, Joe San <codeintheo...@gmail.com>
> wrote:
> >> > So here comes the next bump!
> >> >
> >> > javax.xml.bind.JAXBException: "com.example.filexml" doesnt contain
> >> > ObjectFactory.class or jaxb.index
> >> >
> >> > Do I have to add a jaxb.index file to my package?
> >> >
> >>
> >> Yes, see for example p77 in Camel in Action book.
> >> Or google a bit on how to use JAXB with Java.
> >>
> >> Basically you need to drop a jaxb.index file in the JAR with your JAXB
> >> annotated classes.
> >> The file should contain a line per class that has JAXB annotations.
> >>
> >>
> >>
> >> > Regards,
> >> > Jothi
> >> >
> >> > On Fri, Aug 17, 2012 at 10:24 AM, Joe San <codeintheo...@gmail.com>
> >> wrote:
> >> >
> >> >> Just managed to get rid of this issue and I was about to post my
> >> solution
> >> >> and saw your message. Added the following as a dependency and it
> worked!
> >> >>
> >> >>     <dependency>
> >> >>         <groupId>org.slf4j</groupId>
> >> >>         <artifactId>slf4j-api</artifactId>
> >> >>         <version>1.6.6</version>
> >> >>     </dependency>
> >> >>
> >> >> Regards,
> >> >> Jothi
> >> >>
> >> >>
> >> >> On Fri, Aug 17, 2012 at 10:18 AM, Claus Ibsen <claus.ib...@gmail.com
> >> >wrote:
> >> >>
> >> >>> On Fri, Aug 17, 2012 at 10:06 AM, Joe San <codeintheo...@gmail.com>
> >> >>> wrote:
> >> >>> > I've tried to get rid of this issue but unfortunately could not.
> >> What I
> >> >>> do
> >> >>> > not understand is the following:
> >> >>> >
> >> >>> > The Error says:
> >> >>> >
> >> >>> > Exception in thread "main" java.lang.NoClassDefFoundError:
> >> >>> > org/slf4j/LoggerFactory
> >> >>> >     at
> >> >>> >
> >> org.apache.camel.support.ServiceSupport.<clinit>(ServiceSupport.java:38)
> >> >>> >     at
> >> >>> >
> >> >>>
> >>
> org.example.filexml.CamelWithFileAndXML.main(CamelWithFileAndXML.java:23)
> >> >>> > Caused by: java.lang.ClassNotFoundException:
> org.slf4j.LoggerFactory
> >> >>> >
> >> >>> > I have a dependency as:
> >> >>> >
> >> >>> >     <dependency>
> >> >>> >         <groupId>org.slf4j</groupId>
> >> >>> >         <artifactId>slf4j-log4j12</artifactId>
> >> >>> >         <version>1.6.6</version>
> >> >>> >     </dependency>
> >> >>> >
> >> >>> > When I checked the slf4j jar file, the package structure is
> different
> >> >>> from
> >> >>> > what the error says. There is no org.slf4j.LoggerFactory but
> rather
> >> >>> > org\slf4j\impl\Log4jLoggerFactory. Am I using wrong libraries?
> >> >>> >
> >> >>>
> >> >>> And you got slf4j-api JAR as well? Its needed as dependency.
> >> >>>
> >> >>> > Regards,
> >> >>> > Jothi
> >> >>> >
> >> >>> > On Thu, Aug 16, 2012 at 5:37 PM, Claus Ibsen <
> claus.ib...@gmail.com>
> >> >>> wrote:
> >> >>> >
> >> >>> >> On Thu, Aug 16, 2012 at 4:08 PM, Joe San <
> codeintheo...@gmail.com>
> >> >>> wrote:
> >> >>> >> > Even with the al4j-log4j dependecy added in the libraries, I
> get
> >> this
> >> >>> >> error.
> >> >>> >> >
> >> >>> >>
> >> >>> >> Are you sure they are on the classpath when you run the app form
> >> within
> >> >>> >> Eclipse.
> >> >>> >>
> >> >>> >> And you may want to add slf4j-log4j12 or some other logging
> bridge
> >> so
> >> >>> >> you can use log4j, or maybe some other log kit to log.
> >> >>> >> Then you can see logs in the console in eclipse etc, if you
> >> configure
> >> >>> >> logging to output to std out.
> >> >>> >>
> >> >>> >> If you create a new Camel project using the maven archetypes it
> does
> >> >>> that.
> >> >>> >> camel.apache.org/camel-maven-archetypes.html
> >> >>> >>
> >> >>> >> Or see some of the Camel examples in the examples dir
> >> >>> >>
> >> >>> >>
> >> >>> >>
> >> >>> >> > Regards,
> >> >>> >> > Jothi
> >> >>> >> >
> >> >>> >> > On Thu, Aug 16, 2012 at 3:59 PM, Claus Ibsen <
> >> claus.ib...@gmail.com>
> >> >>> >> wrote:
> >> >>> >> >
> >> >>> >> >> Hi
> >> >>> >> >>
> >> >>> >> >> See this FAQ
> >> >>> >> >> http://camel.apache.org/what-jars-do-i-need.html
> >> >>> >> >>
> >> >>> >> >>
> >> >>> >> >>
> >> >>> >> >> On Thu, Aug 16, 2012 at 3:50 PM, Joe San <
> >> codeintheo...@gmail.com>
> >> >>> >> wrote:
> >> >>> >> >> > Exception in thread "main" java.lang.NoClassDefFoundError:
> >> >>> >> >> > org/slf4j/LoggerFactory
> >> >>> >> >> >     at
> >> >>> >> >> >
> >> >>> >>
> >> >>>
> >> org.apache.camel.support.ServiceSupport.<clinit>(ServiceSupport.java:38)
> >> >>> >> >> >     at
> >> >>> >> >> >
> >> >>> >>
> >> >>>
> >>
> org.example.filexml.CamelWithFileAndXML.main(CamelWithFileAndXML.java:23)
> >> >>> >> >> > Caused by: java.lang.ClassNotFoundException:
> >> >>> org.slf4j.LoggerFactory
> >> >>> >> >> >     at java.net.URLClassLoader$1.run(Unknown Source)
> >> >>> >> >> >     at java.security.AccessController.doPrivileged(Native
> >> Method)
> >> >>> >> >> >     at java.net.URLClassLoader.findClass(Unknown Source)
> >> >>> >> >> >     at java.lang.ClassLoader.loadClass(Unknown Source)
> >> >>> >> >> >     at sun.misc.Launcher$AppClassLoader.loadClass(Unknown
> >> Source)
> >> >>> >> >> >     at java.lang.ClassLoader.loadClass(Unknown Source)
> >> >>> >> >> >     ... 2 more
> >> >>> >> >> >
> >> >>> >> >> > My simple route fails with the above exception. All I have
> in
> >> my
> >> >>> >> pom.xml
> >> >>> >> >> > defined is:
> >> >>> >> >> >
> >> >>> >> >> >     <dependency>
> >> >>> >> >> >         <groupId>org.apache.camel</groupId>
> >> >>> >> >> >         <artifactId>camel-core</artifactId>
> >> >>> >> >> >         <version>2.9.2</version>
> >> >>> >> >> >     </dependency>
> >> >>> >> >> >     <dependency>
> >> >>> >> >> >       <groupId>org.apache.camel</groupId>
> >> >>> >> >> >       <artifactId>camel-jaxb</artifactId>
> >> >>> >> >> >       <version>2.9.2</version>
> >> >>> >> >> >     </dependency>
> >> >>> >> >> >
> >> >>> >> >> > Do I need additional dependencies to be added other than
> this?
> >> >>> >> >> >
> >> >>> >> >> > Regards,
> >> >>> >> >> > Jothi
> >> >>> >> >> >
> >> >>> >> >> > On Thu, Aug 16, 2012 at 3:34 PM, Joe San <
> >> codeintheo...@gmail.com
> >> >>> >
> >> >>> >> >> wrote:
> >> >>> >> >> >
> >> >>> >> >> >> I just found that out from Chapter 4. I would have expected
> >> this
> >> >>> hint
> >> >>> >> >> that
> >> >>> >> >> >> "when the bean has only one method, camel invokes it
> >> >>> automagically
> >> >>> >> >> without
> >> >>> >> >> >> having to explicitly specifying it" in Chapter 3 itself.
> >> >>> >> >> >>
> >> >>> >> >> >> Regards,
> >> >>> >> >> >> Jothi
> >> >>> >> >> >>
> >> >>> >> >> >>
> >> >>> >> >> >> On Thu, Aug 16, 2012 at 3:32 PM, Claus Ibsen <
> >> >>> claus.ib...@gmail.com
> >> >>> >> >> >wrote:
> >> >>> >> >> >>
> >> >>> >> >> >>> On Thu, Aug 16, 2012 at 3:16 PM, Joe San <
> >> >>> codeintheo...@gmail.com>
> >> >>> >> >> wrote:
> >> >>> >> >> >>> > Thanks for pointing me to toe documentation. My actual
> >> >>> question
> >> >>> >> got
> >> >>> >> >> >>> > clarified once I had a look into the documentation.
> >> >>> >> >> >>> >
> >> >>> >> >> >>> > From the Camel in Action book:
> >> >>> >> >> >>> >
> >> >>> >> >> >>> > from("quartz://report?cron=0+0+6+*+*+?")
> >> >>> >> >> >>> > .to("
> http://riders.com/orders/cmd=received&date=yesterday
> >> ")
> >> >>> >> >> >>> > .bean(new OrderToCsvBean())
> >> >>> >> >> >>> >
> >> >>> .to("file://riders/orders?fileName=report-${header.Date}.csv");
> >> >>> >> >> >>> >
> >> >>> >> >> >>> > How does Camel know which method in the OrderToCsvBean()
> >> >>> class to
> >> >>> >> >> >>> invoke.
> >> >>> >> >> >>> > Unfortunately the book does not mentions this in
> Chapter 3.
> >> >>> Not
> >> >>> >> sure
> >> >>> >> >> if
> >> >>> >> >> >>> it
> >> >>> >> >> >>> > is mentioned in Chapter 4 as I'm yet to start with
> Chapter
> >> 4.
> >> >>> >> >> >>> >
> >> >>> >> >> >>>
> >> >>> >> >> >>> Yep chapter 4 is all about using beans/pojos with Camel;
> see
> >> for
> >> >>> >> >> >>> example page 105.
> >> >>> >> >> >>>
> >> >>> >> >> >>> But basically if the pojo/bean has 1 method, then Camel
> knows
> >> >>> that
> >> >>> >> it
> >> >>> >> >> >>> should invoke that method.
> >> >>> >> >> >>> Its when you have 2+ methods it gets more complicated. You
> >> can
> >> >>> of
> >> >>> >> >> >>> course tell Camel the method name to use etc.
> >> >>> >> >> >>>
> >> >>> >> >> >>> But its all covered as well in chapter 4, as well you can
> >> find
> >> >>> >> pieces
> >> >>> >> >> >>> of details scattered online in the Camel docs.
> >> >>> >> >> >>>
> >> >>> >> >> >>>
> >> >>> >> >> >>> > Regards,
> >> >>> >> >> >>> > Jothi
> >> >>> >> >> >>> >
> >> >>> >> >> >>> > On Thu, Aug 16, 2012 at 2:46 PM, Babak Vahdat
> >> >>> >> >> >>> > <babak.vah...@swissonline.ch>wrote:
> >> >>> >> >> >>> >
> >> >>> >> >> >>> >> Check the documentation for this:
> >> >>> >> >> >>> >>
> >> >>> >> >> >>> >> http://camel.apache.org/bean-binding.html
> >> >>> >> >> >>> >>
> >> >>> >> >> >>> >> Babak
> >> >>> >> >> >>> >>
> >> >>> >> >> >>> >> Am 16.08.12 14:32 schrieb "Joe San" unter <
> >> >>> >> codeintheo...@gmail.com
> >> >>> >> >> >:
> >> >>> >> >> >>> >>
> >> >>> >> >> >>> >> >I have decided to use JAXB instead of xStream. My
> route
> >> >>> >> definition
> >> >>> >> >> >>> looks
> >> >>> >> >> >>> >> >like this:
> >> >>> >> >> >>> >> >
> >> >>> >> >> >>> >> >        final JaxbDataFormat jaxb = new
> >> >>> >> >> >>> >> >JaxbDataFormat("com.example.filexml");
> >> >>> >> >> >>> >> >        context.addRoutes(new RouteBuilder() {
> >> >>> >> >> >>> >> >            public void configure() {
> >> >>> >> >> >>> >> >
> >> >>>  from("file://my.xml").unmarshal(jaxb).bean(new
> >> >>> >> >> >>> >> >ProcessorBean()).to("file://my.xml");
> >> >>> >> >> >>> >> >            }
> >> >>> >> >> >>> >> >        });
> >> >>> >> >> >>> >> >
> >> >>> >> >> >>> >> >How do I get hold of the UnMarshalled Java Object (say
> >> >>> >> Person.java)
> >> >>> >> >> >>> in my
> >> >>> >> >> >>> >> >ProcessorBean. Also, when I use a bean for Processing,
> >> how
> >> >>> does
> >> >>> >> >> Camel
> >> >>> >> >> >>> know
> >> >>> >> >> >>> >> >which method to invoke in that bean?
> >> >>> >> >> >>> >> >
> >> >>> >> >> >>> >> >Regards,
> >> >>> >> >> >>> >> >Jothi
> >> >>> >> >> >>> >> >
> >> >>> >> >> >>> >> >On Thu, Aug 16, 2012 at 1:56 PM, Joe San <
> >> >>> >> codeintheo...@gmail.com>
> >> >>> >> >> >>> wrote:
> >> >>> >> >> >>> >> >
> >> >>> >> >> >>> >> >> Guys,
> >> >>> >> >> >>> >> >>
> >> >>> >> >> >>> >> >> I have a route which is defined as below:
> >> >>> >> >> >>> >> >>
> >> >>> >> >> >>> >> >>
> >> from("file://my.xml").marshal().xstream("UTF-8").bean(new
> >> >>> >> >> >>> >> >> ProcessorBean()).to("file://my.xml");
> >> >>> >> >> >>> >> >>
> >> >>> >> >> >>> >> >> All I want to do is access the my.xml in my
> >> ProcessorBean.
> >> >>> >> Where
> >> >>> >> >> >>> and how
> >> >>> >> >> >>> >> >> do I specify the Java object which will be filled
> with
> >> the
> >> >>> >> values
> >> >>> >> >> >>> in the
> >> >>> >> >> >>> >> >> xml file?
> >> >>> >> >> >>> >> >>
> >> >>> >> >> >>> >> >> Regards,
> >> >>> >> >> >>> >> >> Jothi
> >> >>> >> >> >>> >> >>
> >> >>> >> >> >>> >>
> >> >>> >> >> >>> >>
> >> >>> >> >> >>> >>
> >> >>> >> >> >>>
> >> >>> >> >> >>>
> >> >>> >> >> >>>
> >> >>> >> >> >>> --
> >> >>> >> >> >>> Claus Ibsen
> >> >>> >> >> >>> -----------------
> >> >>> >> >> >>> FuseSource
> >> >>> >> >> >>> Email: cib...@fusesource.com
> >> >>> >> >> >>> Web: http://fusesource.com
> >> >>> >> >> >>> Twitter: davsclaus, fusenews
> >> >>> >> >> >>> Blog: http://davsclaus.com
> >> >>> >> >> >>> Author of Camel in Action: http://www.manning.com/ibsen
> >> >>> >> >> >>>
> >> >>> >> >> >>
> >> >>> >> >> >>
> >> >>> >> >>
> >> >>> >> >>
> >> >>> >> >>
> >> >>> >> >> --
> >> >>> >> >> Claus Ibsen
> >> >>> >> >> -----------------
> >> >>> >> >> FuseSource
> >> >>> >> >> Email: cib...@fusesource.com
> >> >>> >> >> Web: http://fusesource.com
> >> >>> >> >> Twitter: davsclaus, fusenews
> >> >>> >> >> Blog: http://davsclaus.com
> >> >>> >> >> Author of Camel in Action: http://www.manning.com/ibsen
> >> >>> >> >>
> >> >>> >>
> >> >>> >>
> >> >>> >>
> >> >>> >> --
> >> >>> >> Claus Ibsen
> >> >>> >> -----------------
> >> >>> >> FuseSource
> >> >>> >> Email: cib...@fusesource.com
> >> >>> >> Web: http://fusesource.com
> >> >>> >> Twitter: davsclaus, fusenews
> >> >>> >> Blog: http://davsclaus.com
> >> >>> >> Author of Camel in Action: http://www.manning.com/ibsen
> >> >>> >>
> >> >>>
> >> >>>
> >> >>>
> >> >>> --
> >> >>> Claus Ibsen
> >> >>> -----------------
> >> >>> FuseSource
> >> >>> Email: cib...@fusesource.com
> >> >>> Web: http://fusesource.com
> >> >>> Twitter: davsclaus, fusenews
> >> >>> Blog: http://davsclaus.com
> >> >>> Author of Camel in Action: http://www.manning.com/ibsen
> >> >>>
> >> >>
> >> >>
> >>
> >>
> >>
> >> --
> >> Claus Ibsen
> >> -----------------
> >> FuseSource
> >> Email: cib...@fusesource.com
> >> Web: http://fusesource.com
> >> Twitter: davsclaus, fusenews
> >> Blog: http://davsclaus.com
> >> Author of Camel in Action: http://www.manning.com/ibsen
> >>
>
>
>
> --
> Claus Ibsen
> -----------------
> FuseSource
> Email: cib...@fusesource.com
> Web: http://fusesource.com
> Twitter: davsclaus, fusenews
> Blog: http://davsclaus.com
> Author of Camel in Action: http://www.manning.com/ibsen
>

Reply via email to