我的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