JavaRESTEasy 3.0.9。最终名称MessageBodyWriterFounderFailure
使用RestEasy3.0.9时。最终版和3.0.11版。最终,引发此错误:
org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure: Could not find MessageBodyWriter for response object of type: [Lmodels.Person; of media type: application/json
at org.jboss.resteasy.core.ServerResponseWriter.writeNomapResponse(ServerResponseWriter.java:67)
我在别处读到过,这是因为Jaxb
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>${resteasy.version}</version>
<exclusions>
<exclusion>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxb-provider</artifactId>
<version>${resteasy.version}</version>
</dependency>
我也尝试了这个依赖项,而不仅仅是jaxb:
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jettison-provider</artifactId>
<version>${resteasy.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson-provider</artifactId>
<version>${resteasy.version}</version>
</dependency>
实际上,下面的代码以前工作正常,没有错误。:
@Path("/persons")
public class PersonController {
...
@GET
@Consumes({"application/json", "application/xml"})
@Produces({"application/json", "application/xml"})
public Person[] get() {
//log.info("Getting all Person");
return database.currentList();
}
}
@XmlRootElement(name = "Person")
public class Person {
private String pid;
private String name;
public Person() {
}
@XmlElement
public String getName() {
return name;
}
@XmlElement
public String getPid() {
return pid;
}
... // with other setters and getters also.
}
不太清楚为什么现在突然不起作用了强>
共 (0) 个答案