是否有一种简单的方法可以在RESTEasy中编组和解组String []或List?
我的代码示例:
@GET
@Path("/getSomething")
@Produces(MediaType.APPLICATION_JSON)
public List<String> getSomeData() {
return Arrays.asList("a","b","c","d");
}
上面给出了一个例外:
Could not find MessageBodyWriter for response object
of type: java.util.Arrays$ArrayList of media type: application/json
答案 0 :(得分:4)
您可能需要像这样包装它:
public List<JaxbString> getList(){
List<JaxbString> ret= new ArrayList<JaxbString>();
List<String> list = Array.asList("a","b","c");
for(String s:list){
ret.add(new JaxbString(s));
}
return ret;
}
@XmlRootElement
public class JaxbString {
private String value;
public JaxbString(){}
public JaxbString(String v){
this.setValue(v);
}
public void setValue(String value) {
this.value = value;
}
@XmlElement
public String getValue() {
return value;
}
}
答案 1 :(得分:1)
我对XML和JSON都有同样的问题。尚未找到解决方案,但我认为它与JAXB有关。
事实证明问题是JAXB已经带有JDK6,并且JBoss的依赖性不正确。他们应该为它找到另一种解决方案,即现在如何完成。任何如何解决它的方法:
<!-- JAXB Reasteasy support -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxb-provider</artifactId>
<version>1.2.1.GA</version>
<scope>compile</scope>
<exclusions>
<exclusion>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.xml.stream</groupId>
<artifactId>sjsxp</artifactId>
</exclusion>
</exclusions>
您将获得RESTEASY JAXB提供程序,但不能获取maven的JAXB文件。