After being unsuccessful at my effort to make the above route to work, I
created the necessary inbox and outbox folders and my new route looks like
below:


from("file://Users/jothi/Desktop/inbox/filename=my.xml").unmarshal(jaxb).bean(new
ProcessorBean()).to("file://Users/jothi/Desktop/inbox/filename=my.xml");

Why does this not work either? What else should I tell Camel so that he
writes the my.xml to the outbox?

Regards,
Jothi

On Fri, Aug 17, 2012 at 12:47 PM, Joe San <codeintheo...@gmail.com> wrote:

> 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