我有以下网络服务方法,
@GET
@Produces({ "application/xml", "application/json" })
@Path("/service/salesorder/{identifier}/{orderType}")
public Response readOrder(@PathParam("identifier") String identifier,
@PathParam("orderType") String orderType);
如果用户调用下面正确的url,我希望服务工作正常,如果任何一个调用坏url(额外的查询参数),这是没有在方法中定义,我想抛出一些错误,我怎么能抓住所有不好的网址?
更正网址:http://myApp.com/service/salesorder/123/ShoppingOrder
错误的网址:http://myApp.com/service/salesorder/123/ShoppingOrder&badparam
答案 0 :(得分:1)
Addionial你应该注入一个@Context方法参数:
public Response readOrder(@PathParam("identifier") String identifier,
@PathParam("orderType") String orderType,
@Context HttpServletRequest req);
然后检查servlet API HttpServletRequest#getParameterNames()是否有任何查询参数。
答案 1 :(得分:0)
您可以使用不同的@PathParam
值。
@Path("/service/salesorder/{identifier}/{orderType:[^&]*}")
这会导致404 Not Found
/service/salesorder/service/salesorder/foo/bar&baz
{orderType:[^&]*}
ShoppingOrder&badparam
{{1}}与{{1}}不匹配。