Using binded classes in your code - JIBX

mysterious

New Member
I managed to bind the files generated through an XSD successfully and i got the following files in my dir\[code\]C:\jibx\tutorial\example25>dirVolume in drive C is WINDOWSVolume Serial Number is 1C8F-663EDirectory of C:\jibx\tutorial\example2505/06/2012 07:12 PM <DIR> .05/06/2012 07:12 PM <DIR> ..05/06/2012 07:12 PM 3,313 Address.class05/06/2012 07:08 PM 3,447 Address.java05/06/2012 07:10 PM 2,912 binding.xml05/06/2012 07:12 PM 2,516 Customer.class05/06/2012 07:08 PM 1,763 Customer.java05/06/2012 07:12 PM 2,582 Item.class05/06/2012 07:08 PM 1,878 Item.java05/06/2012 07:12 PM 2,529 JiBX_bindingFactory.class05/06/2012 07:12 PM 2,384 JiBX_bindingMungeAdapter.class05/06/2012 07:12 PM 2,490 JiBX_bindingOrder_access.class05/06/2012 07:12 PM 7,539 Order.class05/06/2012 07:09 PM 4,869 Order.java05/06/2012 07:11 PM 1,034 Shipping.class05/06/2012 07:09 PM 879 Shipping.java05/06/2012 12:22 AM 5,137 starter.xsd 15 File(s) 45,272 bytes 2 Dir(s) 160,023,375,872 bytes free\[/code\]Now i copied these files into a newly created JAVA project in eclipse , created a package called example25 in that project and pasted those files thereI then used the following code and ran it in the debug mode\[code\]import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.util.Iterator;import org.jibx.runtime.BindingDirectory;import org.jibx.runtime.IBindingFactory;import org.jibx.runtime.IMarshallingContext;import org.jibx.runtime.IUnmarshallingContext;import org.jibx.runtime.JiBXException;import example25.*;public class Test{public static void main(String[] args){ try { // unmarshal customer information from file IBindingFactory bfact = BindingDirectory.getFactory(Order.class); IUnmarshallingContext uctx = bfact.createUnmarshallingContext(); FileInputStream in = new FileInputStream("D:\\Java Libraries\\jibx\\dwcode2\\starter.xml"); Order order = (Order)uctx.unmarshalDocument(in, null); // compute the total amount of the order float total = 0.0f; for (Iterator<Item> iter = order.getItemList().iterator(); iter.hasNext();) { Item item = iter.next(); total += item.getPrice() * item.getQuantity(); } order.setTotal(new Float(total)); // marshal object back out to file (with nice indentation, as UTF-8) IMarshallingContext mctx = bfact.createMarshallingContext(); mctx.setIndent(2); FileOutputStream out = new FileOutputStream("c:\\out.xml"); mctx.setOutput(out, null); mctx.marshalDocument(order); System.out.println("Processed order with " + order.getItemList().size() + " items and total value " + total); } catch (FileNotFoundException e) { e.printStackTrace(); System.exit(1); } catch (JiBXException e) { e.printStackTrace(); System.exit(1); } }}//end main\[/code\]I get the following error after the execution of the first statement\[code\]Unable to access binding information for class example25.OrderMake sure the binding has been compiledjava.lang.NoSuchFieldException: JiBX_bindingListat java.lang.Class.getDeclaredField(Unknown Source)at org.jibx.runtime.BindingDirectory.getBindingList(BindingDirectory.java:68)at org.jibx.runtime.BindingDirectory.getFactory(BindingDirectory.java:211)at Test.main(Test.java:24)\[/code\]
 
Back
Top