JAX-RS中是否有任何方法或註釋允許我在匹配的請求方法執行之前或之後調用方法。讓我們假設我有以下服務類:在JAX-RS中每個@POST或@DELETE請求之前或之後調用方法
public class MyService {
...
@POST
@Path("{id : \\d+}")
@Consumes(MediaType.APPLICATION_JSON)
public Response updateServiceObject(@PathParam("id") long id, InputStream is) {
try {
// Fetch the service object ...
ServiceObject updatedServiceObj = readServiceObject(is);
// ... and try to update it.
updated = getServiceObjectDao().update(updatedServiceObj);
if (updated == 0) {
throw new WebApplicationException(Response.Status.NOT_FOUND);
}
return Response.ok().build();
} catch (Exception e) {
throw new WebApplicationException(Response.Status.BAD_REQUEST);
}
}
@DELETE
@Path("{id : \\d+}")
public Response deleteServiceObject(@PathParam("id") long id) {
try {
getServiceObjectDao().deleteById(id);
} catch (Exception e) {
throw new WebApplicationException(Response.Status.BAD_REQUEST);
}
return Response.ok().build();
}
}
我想補充的方法logEvent()
,該方法被調用,並已提供了參數(只是@PathParam值)的日誌。所以它必須在每次通話之前或之後被調用。
你可以有過濾器或攔截器。還有一些框架已經構建支持日誌記錄。你的框架是什麼? – Sikorski
我正在使用Apache CXF。 – Phidelux
您使用的是什麼版本的JAX-RS? –