Solved

Convert POJO to a jaxb ObjectFactory

Posted on 2009-05-07
7
2,174 Views
Last Modified: 2013-11-23
How to convert POJO to a jaxb ObjectFactory using marshalling?
0
Comment
Question by:cwatkins
  • 3
  • 3
7 Comments
 
LVL 86

Expert Comment

by:CEHJ
ID: 24333677
What's your goal here - what do you intend to be your end product?
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 24333685
If, as i think, you want to end up with xml, see

http://www.onjava.com/pub/a/onjava/2004/12/15/jaxb.html
0
 
LVL 12

Expert Comment

by:Gibu George
ID: 24334566
0
What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

 

Author Comment

by:cwatkins
ID: 24336526
I have an application that returns a POJO.  
There are different POJO structures.  Meaning, a POJO could be an object, a list of objects, map, or an object that is comprised of other objects (e.g., 1-1 or 1-n relationship).
I want to be able to convert the POJO to XML via jaxb Marshaller.
Afterwards, I want to be able to unmarshal the generated XML for a different application.

Example:
 

public void generateXml(List<pojoObj> myPojoObj) throws JAXBException {

 5    

 9     // Get a JAXB Context for the object we created above

10     JAXBContext context = JAXBContext.newInstance(pojoObj.getClass());

11

12     // To convert ex to XML

13     Marshaller marshaller = context.createMarshaller();

14

15     // Format the resulting XML

16     marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);

17     StringWriter sw = new StringWriter();

18

19     // marshall the object to XML

20     marshaller.marshal(myPojoObj, sw);

21

22     // print it out for this example

23     System.out.println(sw.toString());

24   }
 

When I execute the  code snippet, the following exception occurs:
 

unable to marshal type "java.util.ArrayList"

as an element because it is missing an @XMLRootElement annotation

Open in new window

0
 

Author Comment

by:cwatkins
ID: 24337658
Basically, I want to be able to marshal an object without @XmlRootElement
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 24337715
Try generating a schema from the object
0
 

Accepted Solution

by:
cwatkins earned 0 total points
ID: 25228405
There are POJO that can easily be marshall/unmarshal using the POJO corresponding XML.  However, there are arbitrary objects in which there is no associated POJO.  Therefore,  I was able to use XMLEncoder create archives of any Java objects.  
Referene: http://java.sun.com/products/jfc/tsc/articles/persistence4/
0

Featured Post

What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

Join & Write a Comment

Are you developing a Java application and want to create Excel Spreadsheets? You have come to the right place, this article will describe how you can create Excel Spreadsheets from a Java Application. For the purposes of this article, I will be u…
Java Flight Recorder and Java Mission Control together create a complete tool chain to continuously collect low level and detailed runtime information enabling after-the-fact incident analysis. Java Flight Recorder is a profiling and event collectio…
Viewers will learn about basic arrays, how to declare them, and how to use them. Introduction and definition: Declare an array and cover the syntax of declaring them: Initialize every index in the created array: Example/Features of a basic arr…
This tutorial will introduce the viewer to VisualVM for the Java platform application. This video explains an example program and covers the Overview, Monitor, and Heap Dump tabs.

746 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now