【问题标题】:Jersey Pojo AnnotationJersey Pojo 注释
【发布时间】:2016-01-28 08:11:26
【问题描述】:

我想使用 Jersey 2 创建一个 XML Web 服务。

我在这里有 2 个类,分别由 A 和 B 表示:

public class A {
    private B b;
}

public class B {
    @XmlAttribute
    private String bString;
}

和一个服务类:

@GET()
@Path("/test")
@Produces(MediaType.APPLICATION_XML)
public ObjetA test(){

    A a = new A();
    B b = new B();
    a.setB(B);          
    return a;
}

是否有注释或其他方式来获得以下 XML 输出:

<a bString=""/>

现在我有这个:

<a>
<b bString=""/>
</a>

如您所见,我想将 bString 显示为 &lt;a&gt; 的属性,它是一个 B 字段。

谢谢。

【问题讨论】:

  • 是否可以更改 A 类和 B 类的布局?也许 - 如果你必须保留它们 - 考虑添加一个直接公开 @XmlAttribute bString 的新类“AForTheApi”。
  • 是的,我不想碰我的 A 类和 B 类,我正在寻找一种使用它们的方法,而不是使用仅为 Web 服务设计的新类...

标签: java xml jersey


【解决方案1】:

我找到了我的解决方案,只需要在 A 中创建这个方法:

@XmlAttribute(name="bString")
public String getBStringWebService() {
    if(this.getB()!=null){
        return this.getB().getBString();
    }else{
        return null;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-13
    • 2014-12-01
    • 2018-08-11
    • 1970-01-01
    • 2014-08-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多