问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何仅在特定的方法使用RestEasy的PreProcessInterceptor

发布网友 发布时间:2022-04-23 04:58

我来回答

1个回答

热心网友 时间:2023-09-15 18:36

AcceptedByMethodRestEasy的 创建一个类,这两个PreProcessInterceptor和AcceptedByMethod。在accept-方法,您可以检查是否有带注释的@QueryParam("name")。如果有一个注释,返回与真实accept-方法。 在preProcess-方法,你可以从查询request.getUri().getQueryParameters().getFirst("name")。 编辑: 下面是一个例子:public class InterceptorTest {
@Path("/")
public static class MyService {
@GET
public String listByName(@QueryParam("name") String name){
return "not-intercepted-" + name;
}
}
public static class MyInterceptor implements PreProcessInterceptor, AcceptedByMethod {
@Override
public boolean accept(Class declaring, Method method) {
for (Annotation[] annotations : method.getParameterAnnotations()) {
for (Annotation annotation : annotations) {
if(annotation.annotationType() == QueryParam.class){
QueryParam queryParam = (QueryParam) annotation;
return queryParam.value().equals("name");
}
}
}
return false;
}
@Override
public ServerResponse preProcess(HttpRequest request, ResourceMethod method)
throws Failure, WebApplicationException {
String responseText = "intercepted-" + request.getUri().getQueryParameters().getFirst("name");
return new ServerResponse(responseText, 200, new Headers<Object>());
}
}
@Test
public void test() throws Exception {
Dispatcher dispatcher = MockDispatcherFactory.createDispatcher();
dispatcher.getProviderFactory().getServerPreProcessInterceptorRegistry().register(new MyInterceptor());
dispatcher.getRegistry().addSingletonResource(new MyService());
MockHttpRequest request = MockHttpRequest.get("/?name=xxx");
MockHttpResponse response = new MockHttpResponse();
dispatcher.invoke(request, response);
assertEquals("intercepted-xxx", response.getContentAsString());
}
}

2. 如果返回return new ServerResponse(responseText, 200, new Headers<Object>());你将失去的终点。你需要返回null如果你还想被传递到终点。
如何仅在特定的方法使用RestEasy的PreProcessInterceptor

在accept-方法,您可以检查是否有带注释的@QueryParam("name")。如果有一个注释,返回与真实accept-方法。 在preProcess-方法,你可以从查询request.getUri().getQueryParameters().getFirst("name")。 编辑: 下面是一个例子:public class InterceptorTest { Path("/")public static class MyService...

如何仅在特定的方法使用RestEasy的PreProcessInterceptor

在accept-方法,您可以检查是否有带注释的@QueryParam("name")。如果有一个注释,返回与真实accept-方法。 在preProcess-方法,你可以从查询request.getUri().getQueryParameters().getFirst("name")。 编辑: 下面是一个例子:public class InterceptorTest { Path("/")public static class MyService...

特定电磁波治疗仪的使用方法 特定电磁治疗器怎么使用 特定门诊怎么使用 特定电磁波治疗器的作用 怎么使用特定流量 特定电磁波治疗仪使用禁忌 个人感到选择和使用特定品牌 门诊特定项目怎么使用 国赛特定蛋白分析仪使用步骤
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
大连大学中外办学值得上吗 大连大学国际本科是公办还是民办 介绍一些有古老气息的,有传说的地方,越多越好。最好在中国中部。 现在的日本鬼子难道一定是你们想的这样坏吗?坏的是日本政府! 我近几年在吃玉米的时候总是不消化,一吃就拉出来了,而且大便中... 同时掷3个均匀的骰子,当得知"其中两个骰子面朝上点数之和为8时"获得多... 重庆市工伤申请表的鉴定程序是什么的 ...做了包皮手术,有早泄有前列腺,在晚上睡觉梦游射精,有什么影响到病快... 电脑没声,音箱正常,也没发现有感叹号和问号.声音控制部分被禁用.是换了... 属狗女什么属相最配对,属狗女和什么属相最配 模板说是什么? 支持向量机中所谓的支持向量究竟是什么? weka 3.4 预处理面板(preprocess)中 如何打开csv文件? “影视后期制作者”的英文怎么写 求翻译词组 自己家的车撞了自己家的车保险赔吗 我自己开车把车的后保险杠撞坏了,保险公司赔吗? 我自己把汽车撞坏了,该怎么走保险? 自己把车撞了走交强险? 自己开车不小心把车撞坏了,可以走保险吗? 车子不小心自己擦撞了,没及时报案,保险能给理赔吗? 上了车损险,自己把车撞坏了,保险公司给赔付吗? 苹果11手机手机镜像是什么? 华为mate30pro二手3000值得买吗? mate30现在值得入手吗? mate30 mate40哪个值得入手 如何开通支付宝蚂蚁借呗 怎么开启蚂蚁借呗 如何开通“蚂蚁借呗” 怎么开通蚂蚁借呗? C或C++的a.out KMP算法详细代码 r语言rpart函数是怎么处理缺失值的 python如何调用另一个py文件的所有函数? 如何创建DSP工程文件 串的应用kmp算法。求一个字符串在另一个字符串中第一次出现的位置。_百... error C2664: “CPreProcessCommand::ParseCmd”: 不能将参数 1 从“char *”转换为“LPCTSTR &” DataPreprocess.m是什么类型文件,如何执行? write sentences about the past using used to怎么写 如何用tensorflow和tf-slim实现图像分类 freeradius与mySQL联用的最简单例程失败,不知原因出在哪里 include的命令 世界上最复杂的程序算法有哪些? 梦见一家大饭店? 周公解梦,求解梦!奇梦求解。 周公解梦梦见一家人在一起饭店一起吃饭什么意思啊? 梦见去富人老婆开的饭店去吃饭是什么? 梦见自己跟老公准备接手一家餐馆? 如何恢复系统数据库? SQL数据库系统破坏后如何恢复?已被重装系统。