How to integrate JSF and Spring

I did as the guid found on the net, but it doesn't work...

Here is my configrations:

web.xml:

<servlet>

<servlet-name>Faces Servlet</servlet-name>

<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>

<load-on-startup>0</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>Faces Servlet</servlet-name>

<url-pattern>*.faces</url-pattern>

</servlet-mapping>

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>/WEB-INF/classes/gleeContext.xml</param-value>

</context-param>

<context-param>

<param-name>javax.faces.CONFIG_FILES</param-name>

<param-value>/WEB-INF/faces-config.xml,/WEB-INF/faces-managed-beans.xml,/WEB-INF/faces-navigation.xml</param-value>

</context-param>

faces-config.xml:

<faces-config>

<application>

<variable-resolver>org.springframework.web.jsf.DelegatingVariableResolver</variable-resolver>

<locale-config>

<default-locale>cn</default-locale>

</locale-config>

<message-bundle>edu.fudan.glee.view.bundle.MessageBundle</message-bundle>

</application>

<managed-bean>

<description>Bean used to handle all User-based operations.</description>

<managed-bean-name>UserBean</managed-bean-name>

<managed-bean-class>edu.fudan.glee.view.bean.UserBean</managed-bean-class>

<managed-bean-scope>session</managed-bean-scope>

<managed-property>

<property-name>accessControl</property-name>

<value>#{AccessControl}</value>

</managed-property>

</managed-bean>

</faces-config>

When I run the application, an exception reported:

type Exception report

message

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

exception

org.apache.jasper.JasperException: javax.servlet.jsp.JspException: javax.faces.FacesException: javax.faces.el.EvaluationException: Expression Error: Named Object: 'AccessControl' not found.

org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

But I can get AccessControl through

FacesContextUtils.getWebApplicationContext(FacesContext.getCurrentInstance()).getBean("AccessControl")

Where is the problem?

Thanks in advance.

[3217 byte] By [zhlmmca] at [2007-10-2 19:39:59]
# 1
Does any one know this problem?
zhlmmca at 2007-7-13 22:17:55 > top of Java-index,Enterprise & Remote Computing,Web Tier APIs...
# 2
Case sensitivity? In what you say work, you access AccessControl with a captial A and in the faces config you dont. Is your Spring bean defined as AccessControl or accessControl?
jomarala at 2007-7-13 22:17:55 > top of Java-index,Enterprise & Remote Computing,Web Tier APIs...
# 3
My Spring Bean is defined as "AccessControl".I use Tomcat 5.5.12, can this be a problem or I should use an early version?
zhlmmca at 2007-7-13 22:17:55 > top of Java-index,Enterprise & Remote Computing,Web Tier APIs...
# 4

I am running this configuration on Tomcat/5.5.15 without any problems.

<faces-config>

<application>

<variable-resolver>org.springframework.web.jsf.DelegatingVariableResolver</variable-resolver>

<locale-config/>

</application>

<lifecycle/>

<factory/>

</faces-config>

web.xml:

<listener>

<listener-class>

org.springframework.web.context.ContextLoaderListener

</listener-class>

</listener>

<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>

spring context:

..

<bean id="brukerManager" class="org.springframework.aop.framework.ProxyFactoryBean">

<property name="target"><ref bean="brukerManagerTarget"/></property>

<property name="proxyInterfaces"><value>org.soow.service.BrukerManager</value></property>

<property name="interceptorNames">

<list>

<value>hibernateInterceptor</value>

<value>transactionInterceptor</value>

</list>

</property>

</bean>

..

faces-managed-beans:

<managed-bean>

<managed-bean-name>konsulentliste</managed-bean-name>

<managed-bean-class>org.soow.web.KonsulentListeBb</managed-bean-class>

<managed-bean-scope>request<managed-bean-scope>

<managed-property>

<property-name>brukerManager</property-name>

<value>#{brukerManager}</value>

</managed-property>

</managed-bean>

Message was edited by:

jomaral

jomarala at 2007-7-13 22:17:55 > top of Java-index,Enterprise & Remote Computing,Web Tier APIs...
# 5
I give up. I configured almost the same as you, but it doesn't work :(Thank you anyway...
zhlmmca at 2007-7-13 22:17:55 > top of Java-index,Enterprise & Remote Computing,Web Tier APIs...