JavaRestlet:在过滤器中使用转换器服务
我正在一个项目中使用spring和restlet
我添加了一个过滤器,用于检查请求URI是否有效,并返回有效URI的列表(资源发现机制)
我必须使用converter服务(或conneg服务)返回json/xml响应,具体取决于ACCEPT头。在过滤器中,我得到响应对象。我创建了一个自定义类的对象,并用有效的URL填充它。为了将这个对象传递给响应,我使用json序列化程序创建对象的字符串表示(媒体类型-json),并设置响应的实体
@Override
protected int beforeHandle(Request request, Response response) {
String relativeUri = request.getResourceRef().getRemainingPart();
if(mappings.containsKey(relativeUri)) {
return Filter.CONTINUE;
}
ArrayList<String> nextLevelURIs = getNextLevelResourcesUri(request);
if(nextLevelURIs == null) {
return Filter.CONTINUE;
}
Items items = getItems(nextLevelURIs);
response.setEntity(serializer.serialize(items), MediaType.APPLICATION_JSON);
return Filter.STOP;
}
为了实现converter服务的功能,我必须检查ACCEPT头并创建相应的表示(json/xml)。但我已经在其他资源类中使用了转换器服务
有没有办法在过滤器中使用转换器服务。如果我设置json字符串表示并返回过滤器。继续,converter服务能否根据ACCEPT标头将实体从json表示转换为xml表示,或者反之亦然
谢谢
# 1 楼答案
找到了一种方法。请参阅代码