我在JSF 1.2项目中实现了spring security。在JBoss 5.0.1中成功部署,但当我尝试访问我的应用程序的登录页面时,出现以下例外情况JSF1.2和Spring Security集成中的问题
Caused by: java.lang.IllegalArgumentException: FacesContext must not be null
at org.springframework.util.Assert.notNull(Assert.java:112)
at org.springframework.web.jsf.FacesContextUtils.getWebApplicationContext(FacesContextUtils.java:50)
at org.springframework.web.jsf.FacesContextUtils.getRequiredWebApplicationContext(FacesContextUtils.java:81)
at org.springframework.web.jsf.el.SpringBeanFacesELResolver.getWebApplicationContext(SpringBeanFacesELResolver.java:91)
at org.springframework.web.jsf.el.SpringBeanFacesELResolver.getBeanFactory(SpringBeanFacesELResolver.java:79)
at org.springframework.beans.factory.access.el.SpringBeanELResolver.getValue(SpringBeanELResolver.java:50)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
从这个跟踪我猜测,一些如何弹簧豆尝试使用面临上下文之前它初始化。
以下是我的项目结构:
MyEar
|-- lib\ (contains all spring security jar files)
|
|
|-- myWar
|-- META-INF/MANIFEST.MF (entries for spring security jars)
|
|-- WEB-INF
|-- applicationContext.xml
|-- lib\ (local jar files jsf,facelets etc)
这里有一件事是重要的一提的是,我想在耳边的lib目录中的所有我的春天证券罐子,当我把我所有的春天证券这个异常是不会发生直接在耳朵下的罐子(earcontent)不在lib中。
请建议我这是否与我的其他项目的结构有关的问题?
UPDATE:这里是我的清单内容:
Manifest-Version: 1.0
Class-Path: lib/aopalliance-1.0.jar
lib/mysql-connector-java-5.1.7-bin.jar
lib/org.springframework.aop-3.0.5.RELEASE.jar
lib/org.springframework.asm-3.0.5.RELEASE.jar
lib/org.springframework.beans-3.0.5.RELEASE.jar
lib/org.springframework.context-3.0.5.RELEASE.jar
lib/org.springframework.core-3.0.5.RELEASE.jar
lib/org.springframework.expression-3.0.5.RELEASE.jar
lib/org.springframework.transaction-3.0.5.RELEASE.jar
lib/org.springframework.web-3.0.5.RELEASE.jar
lib/spring-security-config-3.0.5.RELEASE.jar
lib/spring-security-core-3.0.5.RELEASE.jar
lib/spring-security-taglibs-3.0.5.RELEASE.jar
lib/spring-security-web-3.0.5.RELEASE.jar
这里是web.xml中的条目的某些部分:
<!-- Delegating to a Spring-managed bean that implements the Filter interface -->
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>targetBean</param-name>
<param-value>filterChainProxy</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
你可以发布你的'MyEar/myWar/META-INF/MANIFEST.MF'? – gpeche 2011-06-02 13:23:24
我已经更新了清单内容 – PushkarT 2011-06-03 04:59:33