调用其签名已更改的java方法时,jsp中的java.lang.NoSuchMethodError

时间:2012-07-31 11:39:06

标签: java jsp

我有一个带有原始签名的java方法,如下所示:

public boolean sampleMethod(int num)

在我的项目中,很多jsp都会调用它。最近,我需要将方法签名更改为:

public boolean sampleMethod(long num)

使用这个新签名,我的jsp中的所有方法调用现在都给了我一个java.lang.NoSuchMethodError。即使我已经编译了代码,它们似乎仍在调用旧方法。我正在使用Intellij IDEA 11.0。

非常感谢您的帮助。

谢谢!

4 个答案:

答案 0 :(得分:4)

看起来您仍然部署了旧的war文件。执行以下操作:

  1. 停止app / web服务器。
  2. 从web-apps目录中删除应用程序。
  3. 启动应用/网络服务器。
  4. 部署新战争

答案 1 :(得分:1)

重载方法或更改JSP端以显式调用新方法。重载的方法就像;

public boolean sampleMethod(int num){
    return sampleMethod((long) num);
}

public boolean sampleMethod(long num){
    // do your work
}

答案 2 :(得分:0)

我在Eclipse IDE中遇到了同样的问题。

正如Reimeus所说,您需要删除EAR文件。 在我的例子中,Eclipse IDE不会将它存储在Tomcat文件夹中,而是存储在/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/work/文件夹中。

也可以从服务器选项卡中清除,右键单击您的项目并选择"清洁模块工作目录..."。

答案 3 :(得分:0)

只需删除Servlet容器中的工作缓存,然后让服务器重新编译所有可修复的jsp。

/ tomcat / work / Catalina / Tomcat的主机名