使用@PathParam注解获取URL参数时遇空值问题求助
解决@PathParam无法获取URL参数的问题
嘿,我一眼就揪出问题所在了——你路径参数的拼写不一致!
看你接口里的@Path("/refresh-stats/{tpye}"),这里的占位符写成了{tpye}(是t-p-y-e,少了个r),但你在@PathParam("type")里用的是正确的type(t-y-p-e)。JAX-RS是通过完全匹配占位符名称和@PathParam里的参数名来绑定值的,这俩名字不一样,自然拿不到参数值啦!
最直接的解决方案:修正拼写错误
把接口里的路径注解改成正确的拼写,让占位符和@PathParam的参数名一致:
@GET @Path("/refresh-stats/{type}") @Produces(MediaType.APPLICATION_JSON) public Response getRefreshStats(@PathParam("type") String type);
改完之后再请求localhost:8080/refresh-stats/abc,应该就能正常获取到"abc"了。
如果修正后还是不行,这些排查点可以试试:
- 检查实现类的路径注解:如果你的实现类上也加了
@Path,要确保接口和实现类的路径拼接后是完整的/refresh-stats/{type},别出现路径层级冲突或者重复的情况。 - 确认资源类的注册:确保你的JAX-RS应用已经正确注册了这个接口/实现类,比如在自定义的
Application子类里添加了对应的类,或者配置了包扫描让框架能找到这个资源。 - 简化路径测试:可以先把路径改成
/test/{type}这种简单形式,测试参数能不能正常获取,排除其他路径配置的干扰。
内容的提问来源于stack exchange,提问作者amit kumar
相关产品推荐
相关产品推荐

