cxf自带的logging interceptor是记在文件中的(比如log4j.properties里指定的文件),我现在想把它记在数据库,因此模仿LogginInInterceptor和LoggingOutInterceptor写了两个interceptor,就叫LogInDBInterceptor和LogOutDBInterceptor吧。因为日志的库表是把一次请求的request和response记在同一条记录里,结构类似如下:
Id requestId requestMsg responseMsg rqDateTime rsDateTime ...
01 RQID00001 rq报文 rs报文 2012.12.10 10:48:10 2012.12.10 10:48:50 ...思路是这样,LogInDBInterceptor拦截到请求报文,根据当前时间生成requestId,然后将相关的请求报文、时间等存入数据库(新增一条记录);在相应的LogOutDBInterceptor里把相应报文、时间等更新至同一条记录。现在的问题是,在LogOutDBInterceptor里怎么知道更新哪一条记录?有什么唯一的ID或者上下文信息能让我们将一次请求和相应在Interceptor里对应起来。熟悉的请指教!
Id requestId requestMsg responseMsg rqDateTime rsDateTime ...
01 RQID00001 rq报文 rs报文 2012.12.10 10:48:10 2012.12.10 10:48:50 ...思路是这样,LogInDBInterceptor拦截到请求报文,根据当前时间生成requestId,然后将相关的请求报文、时间等存入数据库(新增一条记录);在相应的LogOutDBInterceptor里把相应报文、时间等更新至同一条记录。现在的问题是,在LogOutDBInterceptor里怎么知道更新哪一条记录?有什么唯一的ID或者上下文信息能让我们将一次请求和相应在Interceptor里对应起来。熟悉的请指教!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货