我有一个非常奇怪的场景,涉及一个被调用两次但只发生在Linux(Ubuntu)部署上的方法。
我有两个方法,每个方法都由一个按钮提交单独调用。它们每个都需要很长时间才能完成。一种方法加载.xls文件列表,处理并将每一行插入数据库(来自35个xls文件的320172条记录)。另一种方法采用XML文件,使用XStream处理它以创建对象并向生成的每个对象发送电子邮件(生成823个对象)。
问题没有在开发系统(Windows 7,MySQL,smtp4Dev)上展示,但在Linux上部署时,所选方法会被调用两次 - 只有两次。
添加println后,此方法被称为'+ new Date() - 在第一次调用后一分钟(按钮点击),该方法再次被再次调用;每次;尽管服务器负载,但是一分钟到第二分钟。
在一分钟之后,页面返回'502 - 坏网关'但过程继续(我看到继续数据库插入和继续发送电子邮件(将收件人地址更改为我的电子邮件以尝试调试)。
每种方法都有效,但它会两次(重复(不重复三次或更多次)数据库记录和电子邮件)并且我不知道他们为什么被调用两次。
每个部署都使用Struts 2,并且方法不以'get'开头,所以它不太可能是JSON问题(JSON没有在特定页面上使用,并且在绝对的错误修复尝试中,注释掉了所有JSON结果在该动作的struts.xml中)。 这两个部署都在Tomcat上运行。