Han*_*nsi 6 authentication parameters json jersey dropwizard
我想为资源的REST接口提供这样的方法
@POST
@Consumes(MediaType.APPLICATION_JSON)
public void add(@Auth User user, @Valid Food food) {
//consume
}
Run Code Online (Sandbox Code Playgroud)
但是,这是不可能的,因为我得到一个错误,如:"严重:缺少方法public void com.restaurant.FoodResource.add(com.restaurant.User,com.restaurant.Food)的依赖关系在索引0处的参数:SEVERE:Missing方法public void com.restaurant.FoodResource.add(com.restaurant.User,com.restaurant.Food)的索引在索引1的参数SEVERE:Method,public void com.restaurant.FoodResource.add(com.restaurant.User, com.restaurant.Food),用资源的POST注释,类com.restaurant.FoodResource,不被认为是有效的资源方法.
我发现根据规范(3.3.2.1实体参数),不可能有两个没有注释某些注释的参数http://jsr311.java.net/nonav/releases/1.1/spec/spec3.html
还有什么选择可以做这样的事情?我想到的是一个封装User和Food的对象,但这似乎不是一个很好的解决方案.
有没有其他更优雅的方式来做这样的事情?我可以将JSON Food表示作为@PathParam发送吗?
小智 0
尽管有第 3.3.2.1 节,但我还没有看到像您使用以下方法描述的错误:
public Response post(
@Auth User user, @Valid Food food, @Context UriInfo uriInfo);
public Response post(
@Auth User user, @Valid Food food, @QueryParam String s);
public Response post(
@Auth User user, @Valid Food food, BooleanParam b);
Run Code Online (Sandbox Code Playgroud)
因此,解决方法可能是添加未使用的@QueryParam或@Context参数。
| 归档时间: |
|
| 查看次数: |
2482 次 |
| 最近记录: |