java - 将 JAXB 注释与 RestEasy 结合使用

标签 java web-services annotations jaxb resteasy

我尝试将 JAXB 注释与 RestEasy 结合使用,以便在 JSON 输出中选择名称和元素顺序。

不知何故,它不起作用,即使 RestEasy 文档说这是可能的。

这里有一些代码:

@XmlRootElement(name = "translation")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "translation", propOrder = {
    "key",
    "value"
})
public class TranslationDTO {

  public TranslationDTO() {}
  public TranslationDTO(Translation translation) {
    setKey(translation.getTranslationKey().getValue());
    setValue(translation.getContent());
    //setCreationDate(translation.getCreatedTimestamp());
  }

  @XmlElement(name = "key")
    private String key;

  @XmlElement(name = "value")
    private String value;

    //private Date creationDate;

    @XmlElement(name = "key")
    public String getKey() {
    return key;
  }

    public void setKey(String key) {
    this.key = key;
  }

    @XmlElement(name = "value")
    public String getValue() {
    return value;
  }

    public void setValue(String value) {
    this.value = value;
  }

    /*@XmlElement(name = "creationDate")
    public Date getCreationDate() {
    return creationDate;
  }

    public void setCreationDate(Date creationDate) {
    this.creationDate = creationDate;
  }*/

}

这里是一个示例输出:

{
    "name":"i18nhelp",
    "currentVersion":"1",
    "currentTotalKeys":28,
    "oldTotalKeys":0,
    "totalLanguages":2,
    "languageDtos":[{
        "name":"Anglais",
        "iso639":"en",
        "totalCurTrans":28,
        "newCurTrans":28,
        "oldTrans":0
    },
    {
        "name":"Français",
        "iso639":"fr",
        "totalCurTrans":28,
        "newCurTrans":28,
        "oldTrans":0
    }]
}

似乎根本没有考虑 JAXB 注释。

任何想法都会被考虑...

最佳答案

如果您使用 JBoss(或现在称为 WildFly)作为应用程序服务器,您可能会使用 Jackson ( http://jackson.codehaus.org/ ) JSON 编码器体验 RestEasy,它有自己的注释 - 您可以找到链接的文档 jackson 的主页。它们比“仅仅”JAXB 更具表现力,如果您专门针对 JSON 输出,您可能需要考虑它们。

如果您只想使用 JAXB,如您的示例所示,您可以通过指定要在 jboss-deployment-struction.xml 中使用的 Resteasy 提供程序模块,从 Jackson 切换到不同的东西,详见this answer .

关于java - 将 JAXB 注释与 RestEasy 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10802170/

相关文章:

java - 创建不可见组件的图像

java - 如何将我的旧 JFrame 转换为 JPanel,以及如何使其像我使用 JFrame 时一样实际工作

java.lang.NoClassDefFoundError : com/sun/mail/util/MailLogger while trying to send e-mail from JAX-WS

java - 使用 jpcap 检查传出数据包并延迟它们

PHP Soap 客户端 : How call WebService with Derived class as parameter?

web-services - Liferay 7 Service Builder 无需创建数据库表,将调用/调用/使用 RESTful Web 服务 API

java - 我是否需要内部类的 @Named 注释

java - 如何从外部jar自动运行java任务?

java - JAXB SCD 无法与 annox 一起使用

java - 如果常量接口(interface)反模式是一种犯罪行为,那么 Swing 为什么要这样做呢?