I'd like to read XML files that will have some number of parameters defined
for a bean and ultimately store the information into a database.
Currently I am reading from a JMS queue and using a toJdbc method on my bean
to create the sql to pass on to my database endpoint. That works fine. now
I want to pull the same parameters out of XML files.
It seems like this should be simple, but haven't had any luck.
my toJDBC looks like..
public String toJdbc(Exchange exchange){
Map<String,Object> theHeaders = exchange.getIn().getHeaders();
String theBody = exchange.getIn().getBody(String.class);
StringBuilder sb = ....
8<....
sb.append(((theHeaders.containsKey("age"))...
<build the rest of the jdbc string using theHeaders>
...
return sb.toString();
(but the problem seems to be with unmarshalling the XML file)
Things I've tried:
1) "*file://c:/infile).beanRef("myBean","toJdbc").to("stream:out")*;
this grabs the file and loads the full XML text into the msg parameter
of my jdbc (that method loads exchange.getIn().getBody into the msg
parameter), which i suppose I could parse by hand.
2)
*file://c:/infile).marshal().xtream().convertBodyTo(com.me.MyBean.class).beanRef("myBean","toJdbc")*
Hoping for some magic conversion, but no luck
3) I wrote a method for my bean with annotated XML parameters like:
public void fromXML(@XPath("/account/option/value") String value,
....
System.out.println("value="+value);
But, value is always empty when i use the route:
*file://c:/infile).marshal().xtream().beanRef("myBean","fromXML").to("stream:out");*
So, my question is/are:
1) should #3 work?
2) Isn't there a better way?
3) Ideally, i'd like to parse the xml that comes in and NOT assume the XPATH
is correct. Do I need to do that myself?
Thanks!
-J
--
View this message in context:
http://camel.465427.n5.nabble.com/Reading-XML-file-into-a-bean-tp4617160p4617160.html
Sent from the Camel - Users mailing list archive at Nabble.com.