|
|
1
275
有几种方法可以定制JAX-RS的错误处理行为。 第一种方法是创建一个扩展WebApplicationException的异常类。 例子:
要抛出这个新创建的异常,只需执行以下操作:
注意,您不需要在throws子句中声明异常,因为WebApplicationException是一个运行时异常。这将向客户端返回401响应。
第二种也是更简单的方法是简单地构造
此代码也会将401返回给客户端。
另一种方法是包装现有的异常,可能是
|
|
|
2
70
创建上面的类。这将处理404(NotFoundException),在toResponse方法中,您可以给出自定义响应。类似地,您需要映射参数异常等以提供定制响应。 |
|
|
3
38
Jersey在未能解组参数时抛出com.sun.Jersey.api.ParameterException,因此一种解决方案是创建一个ExceptionMapper来处理这些类型的异常:
|
|
|
4
27
然后像这样使用它:
尽管在这种情况下错误处理很简单(抛出400响应),但使用此类允许您考虑一般的参数处理,其中可能包括日志记录等。 |
|
|
5
11
对于解析,SimpleDataFormat应该可以正常工作。
|
|
|
6
7
我也喜欢 StaxMan 如果特定于区域设置的行为是所需和预期的行为,则可以使用以下命令返回400错误请求错误:
有关详细信息,请参阅JavaDoc javax.ws.rs.core.Response.Status |
|
|
7
4
@QueryParam文档说
当字符串形式的查询参数无法转换为t类型时,若要控制用户的响应,可以抛出WebApplicationException。Dropwizard附带以下*参数类,您可以根据需要使用这些类。 BooleanParam、DateTimeParam、IntParam、LongParam、LocalDateParam、NoneEmptyStringParam、UUIDParam。看见 https://github.com/dropwizard/dropwizard/tree/master/dropwizard-jersey/src/main/java/io/dropwizard/jersey/params 如果您需要Joda DateTime,只需使用Dropwizard即可 DateTimeParam .
http://codahale.com/what-makes-jersey-interesting-parameter-classes/
|
|
|
8
1
您可以做的是重写并将出生日期作为字符串,然后尝试解析,如果您没有得到您想要的,您可以通过任何异常映射机制(有几种)随意抛出您想要的任何异常。 |
|
|
9
1
我也面临同样的问题。 我想在一个中心位置捕获所有错误并进行转换。 下面是我如何处理它的代码。
推翻
|
|
|
10
1
方法1:通过扩展WebApplicationException类 通过扩展WebApplicationException创建新异常
现在,在需要时抛出“RestException”。
link . 方法2:实现ExceptionMapper 以下映射程序处理“DataNotFoundException”类型的异常
您可以在此处看到完整的应用程序 link . |
|
|
11
0
作为@Steven Lavine answer的扩展,以防您想打开浏览器登录窗口。我发现很难正确地回复( MDN HTTP Authentication )如果用户尚未通过身份验证,则从筛选器中删除 这帮助我构建了对强制浏览器登录的响应,注意对标题的额外修改。这会将状态代码设置为401,并设置导致浏览器打开用户名/密码对话框的标题。
|