我有两种方法的资源:
@GET
@Path("/{date}")
public Response getPartnerInteractionsByDate(
@PathParam("partnerId") int partnerId,
@PathParam("date") String date
);
@GET
@Path("/{interactionId}")
public Response getPartnerInteraction(
@PathParam("partnerId") int partnerId,
@PathParam("interactionId") int interactionId
);
如何选择一项或另一项服务?如果我将“ 1”设置为interactId,则仍然执行带有日期的方法。
我正在使用apache cxf 3.0.1。谢谢
最佳答案
有两个问题。首先是您的Path必须包含您要绑定的PathParam。其次,您的两条路径是相同的,因为它们都使用2个相同类型的参数(cxf无法知道int和包含int的字符串之间的区别)。
尝试这样的事情:
@GET
@Path("/{partnerId}/date/{date}")
public Response getPartnerInteractionsByDate(
@PathParam("partnerId") int partnerId,
@PathParam("date") String date
);
@GET
@Path("/{partnerId}/{interactionId})
public Response getPartnerInteraction(
@PathParam("partnerId") int partnerId,
@PathParam("interactionId") int interactionId
);