我试图在Jersey中运行一个简单的例子,它有一个GET方法并返回一个Custom对象。 在调用GET时我收到了以下错误
MessageBodyWriter not found for media type=text/plain
我已经在stackoverflow上查看了几个答案,他们建议在pom.xml中放置一个默认的构造函数和jackson依赖。我已经做到了但没有运气。有人可以建议我做错了。
资源类
@Path("customdatatyperesource")
public class CustomDataTypeResource {
@GET
public CustomResource1 get(@Context UriInfo ui) {
return new CustomResource1();
}
}
自定义类
@XmlRootElement
public class CustomResource1 {
@XmlElement
String res;
public CustomResource1() { }
@Override
public String toString(){
return "Custom : "+res;
}
}
的pom.xml
答案 0 :(得分:1)
所以我发现错误不在代码中,而是在发送的请求中。
当我使用标题accept: text/plain
发送请求时
我收到错误消息MessageBodyWriter找不到媒体类型= text / plain
分辨率为accept
标头需要与可以生成的资源相匹配。
在这种情况下,我们的资源能够生成XML或JSON
编写此代码的更好,更全面的方法是在方法上添加产生注释。
@Produces(MediaType.TEXT_XML)
并添加正确的accept
标题,例如
accept: application/json