Erro no método persist [RESOLVIDO]

2 respostas
J

Olá pessoal

Bom, estou usando o JBoss Seam (aprendendo) + JPA em um projeto e estou com um problema aqui.

Quando eu chamo o meu método persist, dá o seguinte erro:

Exception during request processing:
Caused by javax.servlet.ServletException with message: "#{usuarioManager.salvar}: java.lang.NullPointerException"

O EntityManager está certinho pq, teoricamente está sendo injetado pelo container e minha classe está gerenciada pelo contexto do Seam pelo

@name("usuarioManager").

Meu método salvar

public void salvar(){
		/**
		 * Verifica se a senha é igual a senha de verificação
		 */
		System.out.println("Verifica senha (linha 163)");
		if (usuario.getSenha().equals(confirmarSenha)) {
			/**
			 * Verifica se o usuário está null, caso sim, salva um novo, senão, edita o existente
			 */
			System.out.println("Um passo antes do if que verifica se é novo ou edit (linha 168)");
			if (usuario.getId() == null) {
				System.out.println("Modo de inserção (linha 173)");
				entityManager.persist(usuario);
				facesMessages.add("Usuário salvo com sucesso.");
				}else{
					facesMessages.add("Usuário '" + usuario.getLogin() + "' já existente no banco de dados.");
				}*/
			}else {
				/**
				 *	Edita dados do usuário 
				 */
				entityManager.merge(usuario);
				entityManager.refresh(usuario);
				facesMessages.add("Dados atualizados com sucesso.");
			}
		}else{
			facesMessages.addToControl("Verificar", "Senha e confirmação de senha apresentam valores diferentes.");
		}
		confirmarSenha = null;
		usuario = null;
	}

O erro dá exatamente quando eu dou um entityManager.persist(usuario);

Já verifiquei no Debug e todos os dados estão populados certinho no Seam Bean.
Alguém já passou por esta situação e sabe como solucionar?

Desde já agradeço.

Alguem já passou por este problema?

2 Respostas

vitenho

vc tah usando jboss ou qual app server?

ja fez o booking example funcionar flawlessly nesse app server?

manda mais info sobre teu dev enviroment

valeu

J

Obrigado Vitenho.

Solucionei o problema apenas dando um entitymanager.merge() antes de dar um persist, pq o objeto que eu estava tentando persistir não estava managed !!!
Ah, estou usando o JBoss Server 5.0.1

Obrigado pela força.

Criado 17 de julho de 2009
Ultima resposta 28 de jul. de 2009
Respostas 2
Participantes 2