通过GET方法返回自定义对象时出错

时间:2017-08-02 01:28:36

标签: rest jackson jersey-2.0

我试图在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

pom.xml 感谢

1 个答案:

答案 0 :(得分:1)

所以我发现错误不在代码中,而是在发送的请求中。

当我使用标题accept: text/plain发送请求时 我收到错误消息MessageBodyWriter找不到媒体类型= text / plain

分辨率为accept标头需要与可以生成的资源相匹配。 在这种情况下,我们的资源能够生成XML或JSON

编写此代码的更好,更全面的方法是在方法上添加产生注释。

@Produces(MediaType.TEXT_XML)

并添加正确的accept标题,例如

accept: application/json