我有一项服务,其中路径的最后一部分是可选的,用户都可以输入/mypath/ and /mypath/param1/.
我尝试使用正则表达式来过滤路径的最后部分:
@Path("/mypath{param1: (/param1)?}")
我使用 RestEasy 作为我的 JAX-RS 提供程序,代码在 Tomcat 中按预期工作,但是当我将其部署在 JBoss 中时,如果我不提交可选部分,我会收到 405 返回代码。
我在这里做错了什么或者不可能以可移植的方式实现这一点?
问题是冒号之前缺少空格:
@Path("/mypath{param1: (/param1)?}")
应该:
@Path("/mypath{param1 : (/param1)?}")
显然这是一个错误,因为规格 http://jackson.codehaus.org/javadoc/jax-rs/1.0/index.html?javax/ws/rs/FormParam.html使冒号周围的空白可选。我还发现我不是第一个被这个虫子咬了 http://corneliadavis.com/blog/2010/10/20/jax-rs-regular-expressions-in-path-annotations/.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)