On Sun, Aug 19, 2012 at 11:14 AM, Joe San <codeintheo...@gmail.com> wrote:
> 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?
>

With Camel you can use the tracer to see how messages is being routed
http://camel.apache.org/tracer

But often its also just easier to take out pieces of the route, until
something happens/works. (divide and conquer)
So you could just start with a file -> log, and then see if the file
is picked up.
And then add the unmarshal and then move on.

And make sure you got the logging setup so you can log to the console / file.
eg the slf4j + log4j etc. And a log4j.properties file. The Camel Maven
archetypes / examples all uses log4j and have a sample
log4j.properties file to set all this up.




> 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
>>>
>>
>>



-- 
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