Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何让Jersey对无效数据强制执行错误的请求响应?_Java_Rest_Jersey - Fatal编程技术网

Java 如何让Jersey对无效数据强制执行错误的请求响应?

Java 如何让Jersey对无效数据强制执行错误的请求响应?,java,rest,jersey,Java,Rest,Jersey,我当前有一个Jersey资源,它以布尔值作为参数,格式如下: public Response getUserInfo( @PathParam("userID") final long userID, @DefaultValue("true") @QueryParam("details") final boolean includeUserDetails) { // ... } 虽然服务本身工作正常,但我注意到Jersey使用Boolean.valueOf将输

我当前有一个Jersey资源,它以布尔值作为参数,格式如下:

public Response getUserInfo(
        @PathParam("userID") final long userID,
        @DefaultValue("true") @QueryParam("details") final boolean includeUserDetails) {
  // ...
}
虽然服务本身工作正常,但我注意到Jersey使用
Boolean.valueOf
将输入变量转换为Boolean。这意味着所有不是
“true”
的内容都映射到
false

如果用户输入了无效值(如“stopid”而不是“false”),有没有办法让Jersey自动响应
错误请求


我知道我可以手动转换,但因为这不是唯一的情况和地点,我更喜欢一种全局和自动的方式来拒绝任何明显与错误请求不匹配的输入,包括数字。

您是否考虑过抛出a?或者更简单,使用名为
valueOf
fromString
的静态方法定义一个
IncludeUserDetails
类,该方法接受一个
String
参数,抛出一个它应该起作用的参数。问题是代码中存在许多不同的位置,一个解决方案,比如一个特定的类,意味着我需要编写100个类的代码来抛出错误的请求异常,这实在是太多了。特别是对于布尔情况,我会使用转换器,因为Jersey处理转换的方式。对于其他情况,您可能需要调查