使用@POST @FormParam + String数据来验证Jersey API失败

时间:2013-10-08 00:04:55

标签: jersey enunciate

我正在评估enunciate以记录我们的REST API,并且我在验证步骤中遇到问题:

Validation result has errors.
my.java: error: [core] An entity parameter must be of type MultivaluedMap<String, String> if there is another parameter annotated with @FormParam.
                            @FormParam("my-param") String myParam, String data)

泽西支持除了@FormParam绑定之外接受POST数据作为String实体的结构,所以不确定为什么enunciate会窒息?这不符合JAX-RS吗?

如果出现问题,这对于捕获完整的发布数据以进行审计非常有用。有没有办法配置enunciate来忽略这个参数?

如果没有,是否有其他方法可以保持发音快乐的方式捕获帖子数据?我不愿意去MultivaluedMap,因为字符串化过程可能不会产生传入的字符串......

谢谢!

1 个答案:

答案 0 :(得分:0)

可能是验证检查Enunciate执行已过时。您可以考虑submitting a JIRA issue请求更改。

您可以尝试一种解决方法是创建自己的自定义参数注释并配置Enunciate将其视为自定义资源参数。

 <enunciate>
   ...
   <services>
     <rest>
       <custom-resource-parameter-annotation qualifiedName="org.myco.CustomResourceParam"/>
     </rest>
   </services>
   ...
 </enunciate>

但是,如果参数的目的是用于审核,我真的建议使用Jersey filter。这样,您就不会因审计问题而丢弃API代码。