【问题标题】:Getting error A message body writer for Java class java.util.ArrayList/List<java.lang.String> was not found出现错误找不到 Java 类 java.util.ArrayList/List<java.lang.String> 的消息正文编写器
【发布时间】:2013-06-27 11:41:48
【问题描述】:

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

&lt;/stringWrapper&gt;

我做错了什么?

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 web 服务。

【问题讨论】:

标签: java web-services rest jersey


【解决方案1】:

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

}

【讨论】:

  • 或者可能是getter方法上的@XmlElement,我错了吗?
猜你喜欢
  • 2015-11-14
  • 1970-01-01
  • 2016-10-01
  • 2018-04-20
  • 2012-06-17
  • 2013-03-15
  • 1970-01-01
  • 2013-12-05
  • 2023-03-09
相关资源
最近更新 更多