Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.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
使用两个QueryParameter时,Java Rest不起作用_Java_Rest_Jax Rs - Fatal编程技术网

使用两个QueryParameter时,Java Rest不起作用

使用两个QueryParameter时,Java Rest不起作用,java,rest,jax-rs,Java,Rest,Jax Rs,我建立了一种方法,如下所示: @GET @Produces({MediaType.APPLICATION_JSON}) @Path("/{activityLocator}/item/{itemUid}") @Override public Obj getItemWidgetParams( @PathParam("activityLocator") String activityLocator, @PathParam("itemUid")

我建立了一种方法,如下所示:

@GET
@Produces({MediaType.APPLICATION_JSON})
@Path("/{activityLocator}/item/{itemUid}")
@Override
public Obj getItemWidgetParams(
        @PathParam("activityLocator")
        String activityLocator,
        @PathParam("itemUid")
        String itemUid,
        @QueryParam("options")
        ItemWidgetInitOptions options,
        @QueryParam("mode")
        String mode) throws Exception
{
    return something;
}
问题是,当我不使用查询参数或仅使用一个(以下两个uri中的任意一个)时,调用此函数:

1) 主机名/service/stepActivity/activityLocatorID/item/1

2) 主机名/service/stepActivity/activityLocatorID/item/1?模式=5

但是,当我添加第二个查询参数时,该函数就不再被调用,我得到一条错误消息作为响应:

主机名/服务/stepActivity/SerializedSession:activitylocatorID/item/1?模式=5&options=blah


知道我做错了什么吗

尝试将
ItemWidgetInitOptions选项
更改为
字符串选项

如果它是可选的,您可能需要给它一个默认值。

正如km1所说,您可能需要更改参数选项

    @QueryParam("options")
    ItemWidgetInitOptions options
根据:

通常,方法参数的Java类型可能:

  • 是原始类型

  • 具有接受单个字符串参数的构造函数

  • 具有一个名为valueOf或fromString的静态方法,该方法接受单个 字符串参数(例如,请参见Integer.valueOf(字符串)和 fromString(String));或

  • 是列表、集合或分类集合,其中T满足上述2或3。 生成的集合是只读的


  • 在不知道错误的情况下,首先猜测框架需要您告诉它如何将字符串转换为ItemWidgetInitOptions