单个资源上有两个@POST

时间:2017-10-02 17:45:43

标签: java jersey jetty

将Jetty与Jersey嵌入使用。

我想知道我的一个资源是否有可能在同一路径上使用@POST注释的2方法,但使用参数来区分要调用的方法。

例如,假设我有/api/v1/MyResource。而MyResource类看起来像这样:

// The /api is set in my context.
@Path("/v1/MyResource")
public class MyResource {
    private final MyService service;

    public MyResource(MyService service){
        this.service = service;
    }

    @POST
    @PermitAll
    @Consumes(MediaType.APPLICATION_JSON)
    public Response doPost(MyParam param){
        this.service.doStuffWith(param);
    }

    @POST
    @PermitAll
    @Consumes(MediaType.APPLICATION_JSON)
    public Response doPost(MyParamOfADiffType param){
        this.service.doStuffWith(param);
    }
} 

由于我的服务有两个doStuffWith()函数的实现,我希望Jersey尝试将请求主体序列化为MyParam对象,如果它不起作用,请尝试MyParamOfADiffType个对象。然后,如果它不工作,我预计会出现500内部错误。

但我得到了一个ModelValidationException。任何人都知道我的尝试是否可行?

0 个答案:

没有答案