获取REST错误415

时间:2011-11-25 11:46:51

标签: java rest

尝试执行GET REST命令时收到以下错误消息:

“返回415不支持的媒体类型的响应状态”

这是代码:

<code> whenGetPatternByGroupName() {
        Client client = Client.create(new DefaultClientConfig());

        URI uri = UriBuilder.fromUri("http://bla:7979/bla/rest/pattern/").build();
        WebResource service = client.resource(uri);

        List <PatternList> patternList = new ArrayList<PatternList>();
        patternList = service.path("getAll").type(MediaType.APPLICATION_XML).get(patternList.getClass());

        assertThat(patternList.size(), greaterThan(0));
     }
</code>

<code> @GET
    @Path("getAll")
    @Consumes({MediaType.APPLICATION_JSON})
    public List<PatternList> getAllPatterns() { 
        ArrayList<PatternList> list = new ArrayList<PatternList>();

        // put group names here
        String[] groups = new String[] {"Group 1"};

        for (String groupName : groups) {

            List<String> patterns = patternPersistenceService.getListByGroupName(groupName);

            PatternList patternList = new PatternList();
            patternList.setGroupName(groupName);
            patternList.setPatterns(patterns);

            list.add(patternList); 
        }
        return list;
    }
</code>

有没有人有任何想法可能导致这个?

谢谢,

2 个答案:

答案 0 :(得分:1)

设置GET请求的媒体类型并在处理程序中使用@Consumes似乎很奇怪,因为GET请求没有正文。您是不是要在客户端使用accept方法,在服务器端使用@Produces

答案 1 :(得分:0)

你混合了MediaType(你的方法根本不消耗任何东西......):

  • 客户:MediaType.APPLICATION_XML
  • 休息:MediaType.APPLICATION_JSON