我想为同一个 GET 路径提供多个功能。
当且仅当查询参数与 URL 字符串中的参数匹配时,我希望我的 Web 服务“找到”这些函数。
例如:
我有Path("/myGET")
对于那条路,我想有两个功能:
@GET @Produces(MediaType.APPLICATION_JSON) @TypeHint(TagSets.class) public Response getTagSets(@QueryParam("entityId") Integer entityId) { ... }
和
@GET @Produces(MediaType.APPLICATION_JSON) @TypeHint(TagSets.class) public Response getTagSets(){ ... }
现在我收到一个错误:
严重:在资源和/或提供程序类中检测到以下错误和警告:严重:产生媒体类型冲突。资源方法 public javax.ws.rs.core.Response<...>.getTagSets(java.lang.Integer) 和 public javax.ws.rs.core.Response<...>.getTagSets(java.lang. Integer,java.lang.Integer) 可以产生相同的媒体类型 SEVERE:产生媒体类型冲突。资源方法 public javax.ws.rs.core.Response<...>.getTagSets() 和 public javax.ws.rs.core.Response <...>.getTagSets(java.lang.Integer,java.lang .Integer) 可以产生相同的媒体类型
所以首先:有什么方法可以实现我想要在这里做的事情..
第二:如果可用,当且仅当查询参数与函数中请求的内容完全匹配时,是否有任何方法可以找到路径?例如,如果将调用相同的路径,@QueryParam("differentParam")
它将不会到达 2 个函数中的任何一个。
第三:如果没有办法用泽西岛做到这一点,有没有办法用任何其他框架来做到这一点?
重要提示:回答问题的人认为我正在寻找解决方法而不是解决方案。今天我正在使用 1 个函数并检查参数并从中调用我需要的东西(这是我在发布问题之前使用的)。但我正在寻找的可能是使用框架功能来为我省去麻烦
谢谢。