java - 将 MOXy 设置为 JAXB 提供者,在同一个包中没有属性文件

标签 java json jaxb marshalling moxy

我正在尝试使用 MOXy 作为我的 JAXB 提供程序,以便将内容编码/解码为 XML/JSON。

我创建了“jaxb.properties”文件,内容为:javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactor
一切正常。

        JAXBContext jaxbContext = JAXBContext.newInstance(ServerInformation.class); // The jaxb.properties must be in the same package as "ServerInformation.java"
        Marshaller marshaller = jaxbContext.createMarshaller();

        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
        marshaller.setProperty(MarshallerProperties.MEDIA_TYPE, MediaType.APPLICATION_JSON);
        marshaller.setProperty(MarshallerProperties.JSON_INCLUDE_ROOT, false);

我的问题是:有没有办法把这个文件放在另一个包里?我正在使用 Maven 插件“wadl2java”来生成一些包和类,并且在每次 Maven 构建之后,所有包都被删除并重新创建。所以我每次都丢失这个文件......
我想要一个解决方案,将 MOXy 设置为我的 JAXB 提供程序,而我的资源包中没有“jaxb.properties”。
我在同一个项目中有一些其他的包,我可以把这个文件放进去。

任何的想法 ?

谢谢。

最佳答案

有几种方法可以将 MOXy 设置为 JAXB Provider。

  • 将系统属性 JAXBContext.JAXB_CONTEXT_FACTORY 设置为 org.eclipse.persistence.jaxb.JAXBContextFactory
  • http://docs.oracle.com/javaee/7/api/javax/xml/bind/JAXBContext.html#JAXB_CONTEXT_FACTORY
  • 使用 org.eclipse.persistence.jaxb.JAXBContextFactory 创建 META-INF/services/javax.xml.bind.JAXBContext 文件
  • http://docs.oracle.com/cd/E24329_01/web.1211/e24964/data_types.htm#WSGET346
  • 使用 org.eclipse.persistence.jaxb.JAXBContextFactory
  • Can I replace jaxb.properties with code?
  • 关于java - 将 MOXy 设置为 JAXB 提供者,在同一个包中没有属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28676613/

    相关文章:

    java - Java中HashMap解析并访问以下JSON数据格式

    java - Java 8 负子数组

    javascript - Node.js 使用(JSON 字符串/Arr?)

    jboss - Resteasy JAXB 上下文未获取我的 ObjectFactory

    xml - JAXB/XJC - 从 XS :Group 生成一个类

    java - Spring 多个类的依赖注入(inject)

    java - Maven安装时编译错误

    php - mysql表中导入的表情符号和json_encode

    jQuery/json 从 .NET Web 服务中的 POST 读取参数

    java - 使用 Atom 的 Jersey 超媒体