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