获取错误找不到Java类java.util.ArrayList / List <java.lang.string>的消息正文编写器</java.lang.string>

时间:2013-06-27 11:41:49

标签: java web-services rest jersey

这已经在这里发布了很多时间,但没有解决方案对我有用...
我可以通过创建一个包装类来避免这个错误,但它只返回

</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。

1 个答案:

答案 0 :(得分:2)

你应该在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; }

}