使用两个查询参数时 Java Rest 不起作用

标签 java rest jax-rs

我设置了如下方法:

@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) 主机名/服务/stepActivity/activityLocatorID/item/1

2) 主机名/服务/stepActivity/activityLocatorID/item/1?mode=5

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

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

知道我做错了什么吗?!

最佳答案

尝试将ItemWidgetInitOptions选项更改为字符串选项。 如果它是可选的,您可能想给它一个默认值。

关于使用两个查询参数时 Java Rest 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12323029/

相关文章:

tomcat - 如何将 RESTeasy 中的编码设置为 UTF-8?

java - Java中使用String intern方法创建的对象数量

java - Mozilla Rhino 上的区域设置始终为法语(至少在法语平台上)

java - 使用 CXF 拦截器进行错误处理 - 更改响应消息

google-app-engine - 在 Google AppEngine 上实现 REST 服务 (JSON)

java - Jersey Web 服务,保留请求计数

java - 返回新生成的 id restful service post

java - 在 JBehave 中使用多个元过滤器进行过滤

java - 如何通过 byte[] 流读取多个文件的 Socket InputStream?

javascript - 用 JavaScript 下载 Blob