我已经设置了如下方法:
@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)hostname / service / stepActivity / activityLocatorID / item / 1
2)hostname / service / stepActivity / activityLocatorID / item / 1?mode = 5
但是只要我添加第二个查询参数,就不再调用该函数,我收到一条错误消息:
主机名/服务/ stepActivity / SerializedSession:activitylocatorID /项目/ 1模式= 5&安培;选项=嗒嗒
?知道我做错了吗?!
答案 0 :(得分:2)
尝试将ItemWidgetInitOptions options
更改为String options
。
如果是可选的,您可能想要给它一个默认值。
答案 1 :(得分:0)
正如km1所说,您可能需要更改参数选项。
@QueryParam("options")
ItemWidgetInitOptions options
通常,方法参数的Java类型可以是:
是原始类型;
有一个接受单个String参数的构造函数;
使用名为valueOf的静态方法或接受单个的fromString 字符串参数(例如,参见Integer.valueOf(String)和 java.util.UUID.fromString(字符串));或
- 醇>
Be List,Set或SortedSet,其中T满足上面的2或3。 生成的集合是只读的。