JSP - Netbeans не может использовать сессионный компонент - PullRequest
1 голос
/ 18 января 2011

Решено: если вы попали в беду, как я, дважды проверьте определение вашего конструктора! моя была по какой-то причине выпущена ниндзя.

Привет всем,

Я новичок в программировании 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 / Пользователь» (где MiniBay является корнем проекта)

В другом посте я читал, что мои классы должны находиться в папке "WEB-INF". На самом деле, я пытался переместить их безуспешно.

Кроме того, бин "user" работает хорошо, если я удалю вторую строку кода выше, у меня нет проблем.

Есть идеи, как это сделать?

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 Ответ

1 голос
/ 18 января 2011

Значение атрибута класса useBean minibay.user.UserSessBean недопустимо.

Это сводится к тому, что следующее с треском провалилось:

UserSessBean userSession = new UserSessBean();

Есть ли у него (неявный) открытый конструктор без аргументов? Это должно быть там, чтобы заставить строительство работать. Также позаботьтесь о том, чтобы любой из (статических) блоков инициализации выполнялся без выброса исключений / ошибок времени выполнения. Однако вы должны были увидеть это в журналах сервера как основную причину.

Смотри также:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...