【问题标题】:JAX-RS PathParam not workingJAX-RS PathParam 不起作用
【发布时间】:2017-01-20 14:30:35
【问题描述】:

尝试使用 JAX-RS @PathParam 允许正斜杠。发生的情况是它获取值的后端,而不是整个值。下面的例子

方法代码

@PUT
@POST
@Path("/temp/{keyValue:.+}")
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public void setValues(@PathParam("keyValue") PathSegment myvalue) {
  for (String key : myvalue.getMatrixParameters().keySet()) {
    System.out.println(batch)
  }

测试网址

https://localhost:8443/*path*/temp/keyValue;key1=THIS/SUCKS

结果

batch = SUCKS

期望的结果

batch = key1=THIS/SUCKS

我已尝试更改方法签名中的正则表达式,但无法完成。如果事情是 url 编码的,我可以通过%2F 让它通过。但是,如果我将我的 Apache httpd 更改为 AllowEncodedSlashes On,它会破坏我网站的其余部分。关于它可能是什么的任何想法?

我正在运行 httpd -> tomcat -> restService (JAX-RS)

【问题讨论】:

  • 您的参数必须进行 URL 编码。
  • 我试过了,但需要切换 httpd 以允许编码。那会破坏我网站的其他部分。

标签: java tomcat jersey jax-rs


【解决方案1】:

我无法让它正常工作,所以我重写了它,以便它接受一个转换为 JSON 对象的字符串。在 URL 字符串中发送参数是个坏主意,因为 URL 有字符限制。我现在将它作为 AJAX 调用中的数据发送。

【讨论】:

    猜你喜欢
    • 2011-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-28
    • 2013-04-19
    • 1970-01-01
    相关资源
    最近更新 更多