]
nicolas marchais updated AS7-6428:
----------------------------------
Issue Type: Bug (was: Feature Request)
Using Session Scope CDI bean does not work in a HttpSessionListener
-------------------------------------------------------------------
Key: AS7-6428
URL:
https://issues.jboss.org/browse/AS7-6428
Project: Application Server 7
Issue Type: Bug
Components: CDI / Weld
Affects Versions: 7.1.1.Final
Environment: linux 64bits, win7 64 bits
Reporter: nicolas marchais
Assignee: Stuart Douglas
Fix For: No Release
JBoss AS 7.1.x has a bug with using session bean scope in a HttpSessionListener.
When i inject a session scope bean in a HttpSessionListener and i try to populate
attribute in sessionCreated() method many HttpSession are created by JBoss AS. Is it
normal the a web server create many Http session for the same request ?
Normally, this behaviour should work. See :
http://docs.jboss.org/cdi/api/1.1-PRD/javax/enterprise/context/SessionSco...
I did a light Web Project to explain the problem with 1 JSP, 1 SessionScope bean and 1
HttpSessionListener.
Here is the code.
JSP page :
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
SessionScope bean :
@Named
@SessionScoped
public class UserState implements Serializable {
private int state;
public int getState() {
return state;
}
public void setState(int state) {
this.state = state;
}
}
HttpSessionListener :
@WebListener
public class SessionListener implements HttpSessionListener {
@Inject private UserState userState;
@Override
public void sessionCreated(HttpSessionEvent event) {
System.out.println("New HTTP Session created : " +
event.getSession().getId());
userState.setState(2);
}
@Override
public void sessionDestroyed(HttpSessionEvent event) {}
}
After execution, you can read in the console at least 2 http session creation like this
:
New HTTP Session created : zvlF6vGLP1AaXM-rzFU02wAJ.undefined
New HTTP Session created : TlrmmA8Eu4v32SHDT0QBBZza.undefined
The first session seams to be the one which is used by the client. There is one more
problem : The polutated attributes of the session scope bean are ignored after
HttpSessionListener execution. At the end all session scope attributes are null.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: