Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Where to include jaxb.properties file?

I have REST (Jersey) webservice that makes use of some data objects that are marshalled/unmarshalled to/from XML. The data objects are in a separate project/jar that the webservice war depends on.

I'm using MOXy as my JAXB implementation since I'm deploying to Glassfish and that's already included. I know I need a jaxb.properties file to set the JAXB implementation to MOXy with this entry:

javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory

The question is, should the jaxb.properties file be included in the data object jar or in the webservice war or both?

like image 265
sdoca Avatar asked Dec 02 '10 22:12

sdoca


People also ask

What is JAXB context?

The JAXBContext class provides the client's entry point to the JAXB API. It provides an abstraction for managing the XML/Java binding information necessary to implement the JAXB binding framework operations: unmarshal, marshal and validate.


2 Answers

If you don't want or can not use the jaxb.properties (you have a lot of package, the model is in a external jar, you want only java and no configuration files...), you can directly specify the JaxbContextFactory :

Do not create the context using :

JAXBContext jaxbContext = JAXBContext.newInstance(new Class[]{Person.class, ObjectFactory.class}, properties); 

But instead, specify the factory to use :

JAXBContext jaxbContext = JAXBContextFactory.createContext(new Class[]{Person.class, ObjectFactory.class}, properties); 

where the factory is :

import org.eclipse.persistence.jaxb.JAXBContextFactory; 

It is exactly the same, but it is specified explicitly in the java code instead of implicitly in a configuration file.

like image 105
GaspardP Avatar answered Sep 18 '22 15:09

GaspardP


You package the jaxb.properties file with your model classes. GlassFish does not include the MOXy bundle yet, but you can add it easily. Check out my blog for more info:

  • http://bdoughan.blogspot.com/2010/08/creating-restful-web-service-part-35.html
like image 30
bdoughan Avatar answered Sep 18 '22 15:09

bdoughan