-1
回來的webapp,我們使用struts2的攔截器攔截Struts2的攔截器(查看渲染攔截後)不重定向請求之前稱爲來自瀏覽器
public String intercept(ActionInvocation invocation) throws Exception {
TransactionService.startTransaction();
invocation.invoke();
TransactionService.commitTransaction();
}
時的
僞代碼有事務管理操作返回'重定向'(302),有時重定向的請求在調用'TransactionService.commitTransaction()'之前來到服務器。 (看起來像網絡電話比棧展開快)
下面拍攝日誌消息解釋了這個
2017-10-04 09:18:37,693 [task-37] DEBUG (interceptors) TransactionInterceptor begin
2017-10-04 09:18:37,949 [task-38] DEBUG (interceptors) TransactionInterceptor begin
2017-10-04 09:18:37,963 [task-37] DEBUG (interceptors) TransactionInterceptor commit
2017-10-04 09:18:37,955 [task-38] ERROR (interceptors) SecurityInterceptor: Failed to execute Action:
在
上述日誌任務-37(線程)假設保存/更新數據庫的一些記錄,並出具重定向刷新視圖,其攔截器將提交事務。
但重定向線程(任務 - 38)在提交發生之前到達了服務器。
我在看PreResultListener或'Chain Result'。 (這兩個選項都有自己的問題)我非常感謝任何輸入來解決這個問題
在此先感謝。
如果你不行,你不應該編寫自己的攔截器。 –
它的舊代碼,所以我不能在那裏做很多 – user1919511
你不能對這段代碼做任何事情,因爲這段代碼不起作用 –