JSP - Netbeans不能使用会话bean

时间:2011-01-18 13:58:23

标签: java jsp netbeans

解决:如果你像我一样遇到麻烦,请仔细检查你的构造函数定义! 我的一些忍者相关的理由是私人的。

大家好,

我是NetBeans-JSP编程的新手(我对PHP非常有信心) 嗨在“doLogin.jsp”中有这个指令:

...
<jsp:useBean scope="request" id="user" class="minibay.user.LoginBean" />
<jsp:useBean scope="session" id="userSession" class="minibay.user.UserSessBean" />
...

当我运行应用程序并转到页面时,我发现了这个错误:

org.apache.jasper.JasperException: /doLogin.jsp(12,0) The value for the useBean class attribute minibay.user.UserSessBean is invalid.
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148)
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1220)
org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1178)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2417)
org.apache.jasper.compiler.Node$Root.accept(Node.java:495)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
org.apache.jasper.compiler.Generator.generate(Generator.java:3416)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:231)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:347)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:327)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:314)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:589)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
  org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)

实际上,该课程位于“MiniBay / java / minibay / user”下(其中MiniBay是项目根目录)

我在其他帖子中读到我的课程应位于“WEB-INF”文件夹下。 实际上,我试图移动它们没有成功。

此外,“user”bean运行良好,如果我删除上面代码的第二行,我没有问题。

有关如何使其成功的任何想法?

thnks

编辑:这是UserSessBean类定义:

package minibay.user;

import java.io.Serializable;

/**
 *
 * @author Alessandro Artoni <artoale@gmail.com>
 */
public class UserSessBean implements Serializable{
    private boolean loggedIn;
    private User user;

    private UserSessBean(){

    }
    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public boolean isLoggedIn() {
        return loggedIn;
    }

    public void setLoggedIn(boolean loggedIn) {
        this.loggedIn = loggedIn;
    }


}

1 个答案:

答案 0 :(得分:1)

  

useBean类属性minibay.user.UserSessBean的值无效。

这归结为以下情况悲惨地失败了:

UserSessBean userSession = new UserSessBean();

它是否有(隐式)公共no-arg构造函数?它应该在那里建设工作。还要注意任何(静态)初始化块运行时不会抛出runtimeexceptions / errors。但是,您应该在服务器日志中看到它作为根本原因。

另见: