I was able to marshal java object to Xml file successfully.
But not able to unmarshal Xml file to java object back.
My purchase order class:
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class PurchaseOrder {
        @XmlAttribute
        private String name;
        
        public String getName() {
                return name;
        }

        public void setName(String name) {
                this.name = name;
        }

        public double getPrice() {
                return price;
        }

        public void setPrice(double price) {
                this.price = price;
        }

        public double getAmount() {
                return amount;
        }

        public void setAmount(double amount) {
                this.amount = amount;
        }

        @XmlAttribute
        private double price;
        
        @XmlAttribute
        private double amount;

}



My unmarshaller code is as follows :

import javax.jms.ConnectionFactory;
import javax.xml.bind.JAXBContext;

import java.io.File;
import java.math.BigDecimal;
import java.util.Dictionary;
import java.util.HashMap;
import java.util.Map;

import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.jms.JmsComponent;
import org.apache.camel.dataformat.bindy.kvp.BindyKeyValuePairDataFormat;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.model.dataformat.BindyDataFormat;
import org.apache.camel.model.dataformat.BindyType;
import org.apache.camel.model.dataformat.CastorDataFormat;
import org.apache.camel.model.dataformat.JaxbDataFormat;
import org.apache.camel.spi.DataFormat;


public class JaxbTestUnmarshal
{
        public static void main(String[] args) throws Exception {
                         CamelContext context = new DefaultCamelContext();      
                
                        context.addRoutes(new RouteBuilder() {
                            public void configure() {
//                              JaxbDataFormat jaxbUnmarshal = new 
JaxbDataFormat();
//                          
jaxbUnmarshal.setContextPath(PurchaseOrder.class.getPackage().getName().toString());
                            
from("file://test2?fileName=jaxb.xml").unmarshal().jaxb(PurchaseOrder.class.getPackage().getName().toString()).process(new
Processor() {
                                                        
                                                        @Override
                                                        public void 
process(Exchange exchange) throws Exception {
                                                                PurchaseOrder 
porder =(PurchaseOrder) exchange.getIn().getBody();
                                                                
System.out.println("Name is :"+porder.getName());
                                                                
                                                        }
                                                });
                            }
                        });
                     
                       context.start();
                        Thread.sleep(1000);
                        context.stop();

        }

}

Here is my xml:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<purchaseOrder amount="45.0" price="45.0" name="kakashi"/>


i tried t debug the code .its not entering the process block.
Thanks in advance.



--
View this message in context: 
http://camel.465427.n5.nabble.com/Unmarshalling-using-Jaxb-to-POJO-tp5743079.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to