Où inclure jaxb.fichier de propriétés?

j'ai de REPOS (Jersey) webservice qui rend l'utilisation de certains objets de données qui sont rassemblées/unmarshalled vers/à partir de XML. Les objets de données se trouvent dans un bocal/projet séparé dont dépend la guerre webservice.

J'utilise MOXy comme implémentation JAXB car je me déploie sur Glassfish et c'est déjà inclus. Je sais que j'ai besoin d'un jaxb.fichier de propriétés pour définir L'implémentation JAXB à MOXy avec cette entrée:

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

la question Est, si le jaxb.fichier de propriétés être inclus dans le jar d'objet de données ou dans la guerre de webservice ou les deux?

16
demandé sur Blaise Doughan 2010-12-03 01:25:38

2 réponses

vous emballez le jaxb.fichier de propriétés avec vos classes de modèles. GlassFish ne comprend pas encore le faisceau MOXy, mais vous pouvez l'ajouter facilement. Consultez mon blog pour plus d'info:

12
répondu Blaise Doughan 2010-12-03 00:54:19

Si vous ne voulez pas ou ne pouvez pas utiliser le jaxb.propriétés (vous avez beaucoup de paquet, le modèle est dans un jar externe, vous voulez que java et pas de fichiers de configuration...), vous pouvez spécifier directement le JaxbContextFactory:

ne créez pas le contexte en utilisant:

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

mais à la place, spécifiez l'usine à utiliser:

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

où est l'usine:

import org.eclipse.persistence.jaxb.JAXBContextFactory;

C'est exactement le même, mais il est spécifié explicitement dans le code java au lieu de implicitement dans un fichier de configuration.

18
répondu GaspardP 2015-10-13 10:32:04