gpt4 book ai didi

java - 使用 JAXB 解码/编码 List

转载 作者:IT老高 更新时间:2023-10-28 20:37:02 26 4
gpt4 key购买 nike

我正在尝试创建一个非常简单的 REST 服务器。我只有一个返回字符串列表的测试方法。代码如下:


@GET
@Path("/test2")
public List test2(){
List list=new Vector();
list.add("a");
list.add("b");
return list;
}

It gives the following error:

SEVERE: A message body writer for Java type,class java.util.Vector, and MIME media type,application/octet-stream, was not found

I was hoping JAXB had a default setting for simple types like String, Integer, etc. I guess not. Here's what I imagined:


<Strings>
<String>a</String>
<String>b</String>
</Strings>

使这种方法发挥作用的最简单方法是什么?

最佳答案

我使用了@LiorH 的示例并将其扩展为:


@XmlRootElement(name="List")
public class JaxbList<T>{
protected List<T> list;

public JaxbList(){}

public JaxbList(List<T> list){
this.list=list;
}

@XmlElement(name="Item")
public List<T> getList(){
return list;
}
}

请注意,它使用泛型,因此您可以将其与 String 之外的其他类一起使用。现在,应用程序代码很简单:


@GET
@Path("/test2")
public JaxbList test2(){
List list=new Vector();
list.add("a");
list.add("b");
return new JaxbList(list);
}

为什么 JAXB 包中不存在这个简单的类?有人在其他地方看到过类似的东西吗?

关于java - 使用 JAXB 解码/编码 List<String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1603404/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com