Stateful Beans não mantém estado entre Servlets

Olá a todos,

Estou desenvolvendo uma aplicação de teste utilizando EJB 3 no Glassfish, porém esbarrei em uma pequeno problema.

Eu criei um bean stateful:

[code]package sampleear;

import javax.ejb.Remove;
import javax.ejb.Stateful;

@Stateful
public class MyStatefulSessionBean implements StatefulBusinessInterface {

private String nome;

public void setNome(String nome) {
	this.nome = nome;
}

@Remove
public String getNome() {
	return nome;
}

}
[/code]

Seto os dados dele em um servlet:

[code]package sampleear;

import java.io.IOException;

import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MyServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

@EJB
StatefulBusinessInterface full;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	String name = request.getParameter("name");
	
	if (name == null || name.length() == 0) {
		name = "anonymous";
	}
	
	full.setNome(name);
	response.getWriter().write("<a >Quem está logado?</a>");
}

}
[/code]

E tento pegar o valor dele em outro servlet:

[code]package sampleear;

import java.io.IOException;

import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Logged extends HttpServlet {
private static final long serialVersionUID = 1L;

@EJB
StatefulBusinessInterface full;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	response.getWriter().write("Usuário logado: " + full.getNome());
	response.getWriter().write("<br />\n<a >voltar</a>");
}

}[/code]

Porém eu recebo a mensagem “Usuário logado: null”… já testei pra ver se o parâmetro name estava errado, mas não.
Acredito que o container está injetando uma nova instância do bean ao invés de utilizar a que tinha sido criada no outro servlet… como resolver isso?

No seu Bean, implemente a interface Serializable.
Pode ser que ele esteja perdendo a referencia do valor quando acontece o Passivate/Activate. Com o Serializable deve resolver o problema

Não funcionou :?

Tenta colocar o WAR classloader da aplicação como “application” ao invés de “module”

Deixa eu ver se eu entendi… vc quer que eu faça o deploy do EAR sem o módulo Web e depois suba esse módulo como uma aplicação separada?

Desculpem ressucitar o tópico, mas meu problema é exatamente o mesmo.

Alguém tem idéia?