bean userList не найден в области видимости после некоторой проверки функциональности входа в систему с помощью Jmeter - PullRequest
0 голосов
/ 10 июля 2010

У меня есть веб-приложение (использующее Hibernate, и я не могу этого избежать, потому что это один из пунктов экзаменационного теста) для университетского проекта, в котором мне нужна функция входа в систему.

После того, как я запустил некоторый тест с Jmeter (в основном http получает электронное сообщение при входе в систему), я обнаружил, что после 20 тестов webapp перестает работать, возвращая это сообщение: bean userList не найден в области По сути, мне нужно перезапустить Mysql, чтобы приложение снова заработало.

Это код функции входа в систему:

<jsp:root version="2.0" xmlns:jsp="http://java.sun.com/JSP/Page"
 xmlns:c="urn:jsptld:http://java.sun.com/jsp/jstl/core">
 <jsp:directive.page contentType="text/html; charset=UTF-8" />
<jsp:scriptlet>
    session.setAttribute( "userList", com.ggm.hibernateConnection.DAO.getData());
</jsp:scriptlet>
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>Login Page</title>
 </head>
 <body background="sfondo_jsp2.jpg" text="white" link="white" vlink="yellow">
 <div align =" center">
 <br></br>
 <br></br>
 <h1> Benvenuto in Ggm Web Application! </h1>
 <br></br>
 <br></br>
 <br></br>
<jsp:useBean id="actualUser" class ="com.ggm.javaBean.LoginBean" scope="session"> </jsp:useBean>
 <form name="form1" method="POST">
 Username<input type="text" name ="loginUser"></input>
 <br></br>
 Password<input type="password" name ="loginPassword"></input>
 <br></br>
 <input type = "submit" value = "Login"></input>
 <jsp:setProperty name="actualUser" property="loginUser"></jsp:setProperty> 
 <jsp:setProperty name="actualUser" property="loginPassword"></jsp:setProperty> 
 </form>
 Non sei Registrato? Clicca <a href ="registeruser.jsp">QUI</a> per registrarti! 
 <jsp:useBean id="userList" scope="session" type="java.util.List"> </jsp:useBean>
 <c:forEach items="${userList}" var="UserTable">
 <jsp:setProperty name="actualUser" property="databaseUser" value="${UserTable.userName}"></jsp:setProperty>
 <jsp:setProperty name="actualUser" property="databasePassword" value="${UserTable.password}"></jsp:setProperty>
 <c:if test="${actualUser.login}">
  <jsp:directive.page import="javax.servlet.http.Cookie"></jsp:directive.page>
 <jsp:setProperty name ="actualUser" property ="loginUser" value ="null"></jsp:setProperty>
 <c:set var="authorization" value="${true}" scope="session" ></c:set>
 <a href = "poi.jsp">Ciao! sei loggato ora! Clicca qui per andare alla pagina di Inserimento POI</a>
 <c:redirect url="poi.jsp"></c:redirect>
 </c:if>
 </c:forEach>
 </div>
 </body>    
 </html>
 </jsp:root>

А это классы DAO для доступа к базе данных (через Hibernate)

package com.ggm.hibernateConnection;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.*;
import java.util.*;

public class DAO
{
    public static List<?> getData ()
    {
        SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
        Session session = sessionFactory.getCurrentSession();
        List<?> result = null;
        try
        {
            session.beginTransaction();
            Query query = session.createQuery("from Users");
            result = query.list();
            session.getTransaction().commit();
            query.setReadOnly(true);
            query.setMaxResults(50);
            session.flush();
            session.close();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        return result;      
    }

}

PS: извините за мой плохой схоластический английский.

1 Ответ

2 голосов
/ 10 июля 2010

Построение фабрики сессий не должно происходить при каждом запросе.Фабрика сессий является индивидуальной для каждого приложения, поэтому собирайте (настраивайте) ее только один раз и используйте повторно см. Здесь

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