2010-07-10 3 views
0

나는 (최대 절전 모드를 사용하고 있기 때문에 피할 수 없습니다 시험 포인트의 포인트 중 하나이기 때문에) 내가 대학 프로젝트에 대한 로그인 기능이 필요합니다.콩 사용자 목록 Jmeter와 로그인 기능의 일부 테스트 후 범위 내에서 찾을 수 없습니다

Jmeter (기초적인 HTTP는 로그인에서 전자 우편을 얻습니다)를 실행 한 후 20 번 테스트 후에 webapp이이 메시지를 반환하는 것을 발견했습니다. bean userList가 범위 내에 없습니다. Basicaly 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> 

그리고 이것은 (최대 절전 모드를 통해)

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 데이터베이스에 대한 액세스를 위해 DAO 제공자 라이선스 계약입니다 : 내 나쁜 학교 교육에 대한 유감 영어.

답변

2

각 요청시 세션 팩토리를 빌드하면 안됩니다. 세션 팩토리는 응용 프로그램마다 있으므로 한 번만 작성 (구성) 한 다음 다시 사용하십시오. see here

+0

감사합니다. 코드를 살펴보고 영혼을 내 문제에 붙여 넣습니다. 아마 내일! 나는 잠을 자고 싶다 XD –