我有使用@PUT
,@POST
批注的方法。没有这些注释,这些方法会很好地工作。那么这些注释有什么需要?
@GET
@Path ("/{stockId}")
@Produces("application/xml")
public StockDetail search(@PathParam("stockId") Integer stockId) {
final String methodName="search";
mLogger.debug(mClassName+"::" +methodName+"::Entered");
StockDetail stockDetails=null;
try {
stockDetails = mStockBean.retrieve(stockId);
} catch(Exception exception) {
mLogger.error("ClassName::" +mClassName+ "MethodName::" +methodName+"Error::"+exception.getMessage());
}
return stockDetails;
}
最佳答案
好的,这些注释使您例如可以为不同的方法使用相同的路径:
@GET
@Path ("/{stockId}")
@Produces("application/xml")
和
@PUT
@Path ("/{stockId}")
@Consumes("application/xml")
在这里,在同一路径之前,我们将拥有不同类型的请求。
UPD。根据评论,我将注意到,如果我们有方法
A()
,并将其用于具有上面声明的Web服务签名的@GET
,则我们将其使用时不带任何参数(因为它不消耗任何请求主体)。对于第二个,我们将使用A(String body)
方法,因为我们消耗了一些要处理的实体。