Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.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+;泽西服务器启动错误_Java_Jersey - Fatal编程技术网

Java+;泽西服务器启动错误

Java+;泽西服务器启动错误,java,jersey,Java,Jersey,尝试启动服务器时出现以下错误: Error processing resource method, public java.lang.String com.restful.res.UsersWS.getUsersLists(java.lang.Long,java.lang.Boolean,java.lang.Integer,java.lang.Boolean,java.lang.Integer,java.lang.Boolean,java.lang.Integer,java.lang.Boole

尝试启动服务器时出现以下错误:

Error processing resource method, public java.lang.String com.restful.res.UsersWS.getUsersLists(java.lang.Long,java.lang.Boolean,java.lang.Integer,java.lang.Boolean,java.lang.Integer,java.lang.Boolean,java.lang.Integer,java.lang.Boolean,java.lang.Integer,java.lang.Double,java.lang.Double) throws org.codehaus.jettison.json.JSONException, for ResourceMethodDispatchProvider, com.sun.jersey.server.impl.model.method.dispatch.EntityParamDispatchProvider.
com.sun.jersey.api.container.ContainerException: Could not process parameter type class java.lang.Double
这是我的代码:

@GET
//  @Path("/{userId}/users")
    public String getUsersLists(@QueryParam("userId") Long userId,
//          @PathParam("userId") Long userId,
            @DefaultValue("true") @QueryParam("near") Boolean near,
            @DefaultValue("0") @QueryParam("nearLimit") Integer nearLimit,
            @DefaultValue("true") @QueryParam("pref") Boolean pref,
            @DefaultValue("0") @QueryParam("prefLimit") Integer prefLimit,
            @DefaultValue("false") @QueryParam("fb") Boolean fb,
            @DefaultValue("0") @QueryParam("fbLimit") Integer fbLimit,
            @DefaultValue("false") @QueryParam("adBook") Boolean adBook,
            @DefaultValue("0") @QueryParam("adBookLimit") Integer adBookLimit,
            @DefaultValue("null") @QueryParam("lat") Double lat,
            @DefaultValue("null") @QueryParam("lon") Double lon) throws JSONException {

@DefaultValue
注释使用类型的构造函数,该构造函数接受单个
字符串
参数

打开jersey的源代码,它会在运行时检查默认值的有效性,这就是为什么会出现异常
“null”
对于
双精度
来说不是有效的数字,尝试将其传递给构造函数会导致
NumberFormatException
,jersery随后将其包装在自己的异常中并重新调用

查看Javadoc中的Double,我能建议的最接近的方法可能是使用
“NaN”
(不是数字),然后在代码中检查它。当然,既然你说的是纬度和经度,也许仅仅使用
“0.0”
就可以了


编辑以添加:如您问题的评论所述,选项B可能是一种更合理的方法,它将切换到POST并向您的REST调用发送JSON,将其反序列化为POJO并从那里开始。

注释使用类型的构造函数,该构造函数接受单个
字符串
参数

打开jersey的源代码,它会在运行时检查默认值的有效性,这就是为什么会出现异常
“null”
对于
双精度
来说不是有效的数字,尝试将其传递给构造函数会导致
NumberFormatException
,jersery随后将其包装在自己的异常中并重新调用

查看Javadoc中的Double,我能建议的最接近的方法可能是使用
“NaN”
(不是数字),然后在代码中检查它。当然,既然你说的是纬度和经度,也许仅仅使用
“0.0”
就可以了


编辑以添加:正如对您的问题的评论中所指出的,选项B可能是一种更合理的方法,它将切换到POST并向REST调用发送JSON,将其反序列化到POJO并从那里开始。

一个方法的许多参数表示强烈的代码气味。我建议您创建一个bean来聚合并来回传递此信息。@Perception-我有点同意,不过您可能只想使用POST而不是GET,并将JSON发送到REST调用,让jersey将其反序列化到POJO。方法的许多参数表明代码味道很浓。我建议您创建一个bean来聚合并来回传递此信息。@Perception-我有点同意,不过您可能只想使用POST而不是GET,并将JSON发送到REST调用,让jersey将其反序列化到POJO。