这已经在这里发布了很多时间,但没有解决方案对我有用…
我可以通过创建一个包装类来避免这个错误,但它只返回
< / stringWrapper>
我究竟做错了什么 ?
StringWrapper类:
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class StringWrapper {
public StringWrapper (){}
List<String> list=new ArrayList<String>();
public void add(String s){
list.add(s);
}
}
代码:
@Path("/xml")
@GET
@Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})
public StringWrapper mystring(){
StringWrapper thestring=new StringWrapper();
thestring.add("a");
thestring.add("a");
return thestring;
}
使用Jersey的Java Rest webservice.
解决方法:
您应该在StringWrapper中添加至少一个getter.没有公共属性,没有任何序列化.所以输出是正确的.如果您不想在字符串列表周围添加标记,则可以使用@XmlValue标记单个getter.
@XmlRootElement
public class StringWrapper {
public StringWrapper (){}
List<String> list=new ArrayList<String>();
public void add(String s) { list.add(s); }
@XmlValue
public List<String> getData() { return list; }
}