java - 为什么tomcat重启时会调用不同的函数?

标签 java javascript dwr

我们在 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/

相关文章:

java - 为什么 Java 给我一个 IllegalArgumentException?

java - 未打开顶部的 Activity

javascript - 在加载 jQuery 模板后初始化 SLICK Carousel

java - 为什么我的 BufferStrategy 抛出 NullpointerException 以及如何修复它?

javascript - 在选择菜单中禁用第 n 个子项

javascript - 在 RawShaderMaterial 中使用属性对象时出现问题

javascript - 我们可以在 Javascript 中实例化 Java 对象吗?

java - DWR 3.0.rc2 和 Maven

java - postgresql 与 spring data jpa 中的 SQLGrammarException 和 TransactionRequiredException

java - 处理两个 JOptionPane showInputDialog 中的 java 取消按钮