[
https://jira.jboss.org/jira/browse/JBSEAM-3273?page=com.atlassian.jira.pl...
]
Shane Bryzak commented on JBSEAM-3273:
--------------------------------------
Ok I've worked out why this is happening. Dan recently added a new filter
(IdentityFilter) that provides an integration point between servlet security and Seam
security. This filter inadvertently creates a new session, before the faces request even
is even handled and therefore the FacesContext is not available. You can disable this
filter by adding the following line to your components.xml:
<web:identity-filter disabled="true"/>
I would go as far to say that Seam makes no guarantee as to the availability of
FacesContext or the HttpServletRequest objects during @Startup, however at this stage I
can't recommend a reasonable alternative. I do recommend though that you create a new
feature request in JIRA for this (and link it to this issue).
@Startup + @Create on session-scoped bean broken in Seam 2.1
------------------------------------------------------------
Key: JBSEAM-3273
URL:
https://jira.jboss.org/jira/browse/JBSEAM-3273
Project: Seam
Issue Type: Bug
Environment: clean Tomcat 6.0.16, Seam 2.1 build 281
Reporter: Przemyslaw Jaskierski
Assignee: Shane Bryzak
Priority: Critical
Fix For: 2.1.0.CR1
Attachments: issueDemo.war, src.zip
In 1.x, 2.x and Seam 2.1 build from ~march 2008 it was possible to access, for example,
cookies info or other http request attributes at session creation time. It was extremely
useful to fetch f.e. user-specific data from database to create custom view etc,
(described f.e. here
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3963032). It is not
working anymore. Both FacesContext.getCurrentInstance() and
ServletContexts.getInstance().getRequest() now return null within @Create method.
@Name("sessionStateBacker")
@Scope(ScopeType.SESSION)
@Startup
public class UserStateBacker
implements Serializable
{
@Create
public void sessionCreated()
{
FacesContext facesContext = FacesContext.getCurrentInstance();
if (facesContext == null) {
System.out.println("FacesContext is null in 2.1.0 but worked fine in
2.0.3");
}
//facesContext.getExternalContext().getRequestCookieMap();
}
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira