Java 和 JSP - java.lang.NoSuchMethodError?

Java and JSP - java.lang.NoSuchMethodError?

如何设置 属性 并将其显示在 jsp 页面上?

我的Hello.class,

package Foo;

public class Hello
{
    private String message;

    public String sayHello ()
    {
        return "Hello World!";
    }

    public String getMessage() {
        return this.message;
    }

    public void setMessage(String x) {
        this.message = x;
    }
}

我的index.jsp,

<html>
<head>
<title>Custom Class</title>
</head>
<body>

    <%@ page import="Foo.Hello" %>

    <%
    Hello hello = new Hello();

    hello.setMessage("Hello There!");
    out.print(hello.getMessage());
    out.print(hello.sayHello());
    %>

</body>
</html>

错误,

org.apache.jasper.JasperException: An exception occurred processing JSP page /custom-class/index.jsp at line 12

9:     <%
10:     Hello hello = new Hello();
11: 
12:     hello.setMessage("Hello There!");
13:     out.print(hello.getMessage());
14:     out.print(hello.sayHello());
15:     %>


Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:574)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:461)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

javax.servlet.ServletException: java.lang.NoSuchMethodError: Foo.Hello.setMessage(Ljava/lang/String;)V
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:908)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:837)
    org.apache.jsp.custom_002dclass.index_jsp._jspService(index_jsp.java:122)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

java.lang.NoSuchMethodError: Foo.Hello.setMessage(Ljava/lang/String;)V
    org.apache.jsp.custom_002dclass.index_jsp._jspService(index_jsp.java:103)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

我是 Java 和 JSP 的新手。做错了什么?

我在你的代码中没有发现任何问题它工作正常我认为你必须清理你的项目并将它重新部署到你的服务器上并且清理并重新启动你的服务器然后它肯定会工作。

对于以后遇到这个问题的人:

我刚刚遇到了同样的问题,我 从 "IntelliJ IDEA > Preferences > Application Servers" 中删除了 tomcat 服务器 并且我 再次添加了它.现在可以正常使用了。