我们在 java 中重写了以下函数
MailboxUtils.GetMailboxWithUIMap = function(p0, p1, p2, callback) {
DWREngine._execute(MailboxUtils._path, 'MailboxUtils', 'GetMailboxWithUIMap', p0, p1, p2, callback);
}
MailboxUtils.GetMailboxWithUIMap = function(p0, p1, callback) {
DWREngine._execute(MailboxUtils._path, 'MailboxUtils', 'GetMailboxWithUIMap', p0, p1, callback);
}
出于某种奇怪的原因,当 tomcat 服务器启动并且程序执行时,它会调用带有 4 个参数的函数,即 function(p0, p1, p2, callback)
即使我们只传入了 3 个参数论据。然后,如果我们重新启动 tomcat 服务器,系统开始正常运行并开始调用正确的函数,即 function(p0, p1,callback)
。这似乎是非常随机的,解决它的唯一方法是多次重新启动 Tomcat,直到问题得到解决。
以前有人遇到过这种问题吗?有什么办法可以解决这个问题吗?
最佳答案
原来DWR/Javascript不支持函数重载
代码本身是用java编写的,支持函数重载,但是该代码随后使用不支持重载的DWR进行ajax化。因此,每次服务器重新启动时,都会根据最后加载的两个函数中的哪一个来执行。
必须重命名其中一个函数以阻止过载
关于java - 为什么tomcat重启时会调用不同的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23194073/