Problema com Session no Vraptor

Pessoal to fazendo um session para carregar um paciente. tipo clico no botao carregar e ele joga um paciente para a sessao e com isso pego informaçoes dele. Mais ai usei a mesma regra do login, por falta de conhecimento mais sem validaçao é logico. ai ficou assim:

PacienteSession

package br.com.dental.paciente;

import java.io.Serializable;

import br.com.caelum.vraptor.ioc.Component;
import br.com.caelum.vraptor.ioc.SessionScoped;
import br.com.dental.modelo.Paciente;

@Component
@SessionScoped
public class PacienteSession implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	
	private Paciente carregado;

	public void carrega(Paciente paciente) {
		this.carregado = paciente;
	}

	public String getNome() {
		return carregado.getNome();
	}
}

PacienteDAO acho que pode estar errado.

public Paciente carrega(Paciente paciente) {
		Session session = (Session) em.getDelegate();
		return (Paciente) session.createCriteria(Paciente.class)
				.uniqueResult();

	}

pacienteController

@Post
	@Path("/carrega-paciente")
	public void carrega(Paciente paciente){
		Paciente carregado = dao.carrega(paciente);
		pacienteSession.carrega(carregado);
		result.redirectTo(ReceitasController.class).lista();
	}

e a jsp

<form action="<c:url value= "/carrega-paciente" />" method="POST" class="form-ajuste">
			<input type="hidden" name="paciente.id" value="${paciente.id}" /> 
				<button class="link-add" type="submit" title="Carregar"></button>
		</form>

e a header onde fica para mostra o nome do paciente

 Paciente: ${pacienteSession.nome}

e o erro:

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

br.com.caelum.vraptor.view.ResultException: org.apache.jasper.JasperException: An exception occurred processing JSP page /header.jspf at line 140

137: 					<form  action="<c:url value="/pacientes/busca" />">
138: 						<input class="buscas" id="busca" name="nome" size="40"/>
139: 					</form>
140: 					 Paciente: ${pacienteSession.nome}
141: 				</li>
142: 		
143: 				</ul>


Stacktrace:
	br.com.caelum.vraptor.view.DefaultPageResult.defaultView(DefaultPageResult.java:69)
	br.com.caelum.vraptor.interceptor.ForwardToDefaultViewInterceptor.intercept(ForwardToDefaultViewInterceptor.java:60)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.OutjectResult.intercept(OutjectResult.java:67)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:85)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:71)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:48)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:83)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:44)
	br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)

Deve ser uma besteira que estou errando mais já estou com a cabeça quente :confused: .

descansa um pouco man!

veja seu dao realmente esta errado, vc esta buscando por paciente, mas nao esta colocando nenhuma restrição

abrassss

será que o paciente não está vindo null?

pode ser isso que o lucas disse… para isso faça o teste com JSTL para só colocar o nome do Paciente se ele não estiver nulo.

<c:if test="${!empty pacienteSession}">
  Paciente: ${pacienteSession.nome}
</c:if>

acho q é assim hehehehe… se num for é o caminho…

vc não precisa ficar fazendo ifs de null no jsp,

o problema é que se o jsp chama um getter e o getter dá um nullpointer ele não pode fazer nada.

tenta olhar o método PacienteSession#getNome e veja se pode dar nullpointer dentro dele.

[quote=Lucas Cavalcanti]vc não precisa ficar fazendo ifs de null no jsp,

o problema é que se o jsp chama um getter e o getter dá um nullpointer ele não pode fazer nada.

tenta olhar o método PacienteSession#getNome e veja se pode dar nullpointer dentro dele.[/quote]

tem razão, era só uma forma de também tentar verificar…