powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / EJB не вытаскивает данные из базы
8 сообщений из 8, страница 1 из 1
EJB не вытаскивает данные из базы
    #37611761
danyalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер, у меня маленькая проблема. создаю простое приложение на JSF для входа пользователя на сайт по имени и паролю, который уже хранится в базе данных. вробе бы данные выходят, но вот при валидации показывается, что там NULL. выставляю коды, которые я написал. использую базу MySql 5.
Users.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
package com.example;

import java.io.Serializable;
import javax.persistence.*;


/**
 * The persistent class for the users database table.
 * 
 */
@Entity
public class Users implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private int id;

	private String password;

	private String username;

    public Users() {
    }

	public int getId() {
		return this.id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getPassword() {
		return this.password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getUsername() {
		return this.username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

}



LoginUser.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
package com.example;

import javax.ejb.EJB;
import javax.enterprise.context.SessionScoped;
import javax.faces.bean.ManagedBean;

@ManagedBean(name="login")
@SessionScoped
public class LoginUser {

	@EJB 
	UserEJB userEJB;
	
	private String username;
	private String password;
	Users users = new Users();
	
	public LoginUser(){}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	};
	
	private void show() {
		System.out.println(username + "|" + password);
	}
	
	public String validLogin() {
		
		userEJB.getData();
		if((username.equals(users.getUsername())) && (password.equals(users.getPassword()))) {
			return "admin";
		}
		else { -- выходит этот код, потому что валидация не прошла
			show(); -- этот код показывает, что данные из формы записались нормально
			System.out.println(users.getUsername() + "|" + users.getPassword()); -- вот это сообщение показывает, что users пуст
			return "fail";
		}
		
	}
	
}



UserEJB.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
package com.example;

import java.util.List;

import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

/**
 * Session Bean implementation class UserEJB
 */
@Stateless
@LocalBean
public class UserEJB {

	@PersistenceContext(unitName="ExampleJSF")
	EntityManager em;
	
	private Users users;
	private LoginUser loginUser = new LoginUser();
	
    public UserEJB() {
       
    }
    
    public void getData() {
    	
    	List<Users> list = em.createQuery("select u from Users u where u.username=:username and u.password=:password")
    			.setParameter("username", loginUser.getUsername())
    			.setParameter("password", loginUser.getPassword())
    			.getResultList();
    	
    	if(!list.isEmpty()) {
    		System.out.println("List is not empty"); -- выходит это сообщение, значит данные выбраны
    		users = list.get(0);
    	}
    	else
    	{
    		System.out.println("List is empty");
    	}
    	
    }

}



login.xhtml
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" 
      xmlns:ui="http://java.sun.com/jsf/facelets" 
      xmlns:h="http://java.sun.com/jsf/html" 
      xmlns:f="http://java.sun.com/jsf/core">

<h:head>
	<title>Login Page</title>
</h:head>
<h:body>

	<h:form>
		<h:panelGrid columns="3">
			
			<h:outputLabel value="Login:" />
			<h:inputText value="#{login.username}" id="username" title="username" required="true" requiredMessage="The field is required!"/>
			<h:message for="username"/>
			
			<h:outputLabel value="Password" />
			<h:inputSecret value="#{login.password}" id="password" title="password" required="true" requiredMessage="The field is required!" />
			<h:message for="password"/>
			
			<h:commandButton value="Log In" action="#{login.validLogin}" />
			
		</h:panelGrid>
	</h:form>

</h:body>
   
   
</html>



Буду рад вашей помощи.

With Best Regards!
...
Рейтинг: 0 / 0
EJB не вытаскивает данные из базы
    #37611767
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Полный стек-трейс с исключением
2) Место в коде, где оно вылетает.
...
Рейтинг: 0 / 0
EJB не вытаскивает данные из базы
    #37612429
danyalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
никакой ошибки не выдается, просто уже на период валидации пароля с данными, полученными из бд, данные почему то обнуляются, возвращают null.
...
Рейтинг: 0 / 0
EJB не вытаскивает данные из базы
    #37612442
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дебажьте UserEJB.java
Может увидите, где там null появляется.
...
Рейтинг: 0 / 0
EJB не вытаскивает данные из базы
    #37612706
Valery Shiskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не вижу, где и каким образом исползуется Users из класса LoginUsers. Он нигде, по-моему, не заполняется. Может я что-то не замечаю?
...
Рейтинг: 0 / 0
EJB не вытаскивает данные из базы
    #37612732
Valery Shiskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется у Вас в классе UserEJB должен быть метод:

Код: java
1.
2.
3.
4.
public Users getUsers() {
   getData();
   return users;
}



Ну и соответсвенно в классе LiginUser:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
public String validLogin() {
		
		users = userEJB.getUser();
		if((username.equals(users.getUsername())) && (password.equals(users.getPassword()))) {
			return "admin";
		}
		else { -- выходит этот код, потому что валидация не прошла
			show(); -- этот код показывает, что данные из формы записались нормально
			System.out.println(users.getUsername() + "|" + users.getPassword()); -- вот это сообщение показывает, что users пуст
			return "fail";
		}
		
	}
...
Рейтинг: 0 / 0
EJB не вытаскивает данные из базы
    #37612883
eros2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не очень внимательно смотрел, но помоему loginUser который у вас в EJB - это совсем не тот "login" который вы используете в JSf-коде. Т.е. в loginUser и должны быть нуллы.
...
Рейтинг: 0 / 0
EJB не вытаскивает данные из базы
    #37613378
Valery Shiskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
danyalov,

В принципе. на это тоже интересно. Но, в падлу ответить?
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / EJB не вытаскивает данные из базы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]