尝试执行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>
有没有人有任何想法可能导致这个?
谢谢,
答案 0 :(得分:1)
设置GET请求的媒体类型并在处理程序中使用@Consumes
似乎很奇怪,因为GET请求没有正文。您是不是要在客户端使用accept
方法,在服务器端使用@Produces
?
答案 1 :(得分:0)
你混合了MediaType
(你的方法根本不消耗任何东西......):
MediaType.APPLICATION_XML
MediaType.APPLICATION_JSON