What is wondering me is that I do not see any exception at all. Thread.sleep(10000) sleeps for 10 seconds and I think that is ample time to copy a simple 4 line xml to the outbox. Is there a way that I could debug a bit here to understand what is happening behind the scenes?
Regards, Jothi 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? > > 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 >>> >> >> >