我的spring MVC控制器被調用兩次。最煩人的是它不是確定性的,有時它會發生一些不是。控制器bean的實例是相同的(我已經打印了引用),但堆棧調用是不同的。我打印了,並提出了差異,唯一的區別是:Spring MVC控制器調用兩次堆棧不同控制器實例是一樣的
< at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
---
> at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
如此看來,一個是以線310打了個電話,另一種被稱爲由312似乎當請求需要發生更多的時間(它必須去數據庫等)。
我已經使用FF和Chrome進行了測試,並且此請求也是通過瀏覽器欄進行的GET請求,因此它沒有任何前端代碼。
該應用程序在Apache Tomcat/7.0.47下運行。
代碼示例:
@Controller
@RequestMapping(value = "/base")
public class AdyenApiController {
@Autowired
private AdyenNotificationService service;
@RequestMapping(value = "/debug/due", method = RequestMethod.GET)
@ResponseBody
public ResponseEntity<String> dueScheduler() {
try {
throw new RuntimeException();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("> " + this);
System.out.println("EXECUTING?!");
service.processModifications();
return new ResponseEntity<>("processed dues)", HttpStatus.OK);
}
}
是否有人有任何想法,這可能是?
你能否粘貼誰le錯誤和您的控制器代碼? – Aeseir 2014-11-06 22:49:22
沒有錯誤我只是爲了看到堆棧而發生錯誤。錯誤是控制器被調用兩次。 – rpvilao 2014-11-06 22:53:02
因此,爲了澄清你輸入localhost/some_page,它會調用兩次映射到「some_page」的相同的「方法?」 – Aeseir 2014-11-06 22:54:18