Menu

problems wiht JSF-Spring 3.0.0M2

Users
2005-10-11
2013-04-08
  • marco mistroni

    marco mistroni - 2005-10-11

    Hello all,
    i am trying to integrate Spring and JSF in my application, using hte library jsf-spring-3.0.0M2.
    I have defined in applicationContext.xml a bean, applicationBean, which has a property that refers to another bean also defined in applicationContext.xml
    applicationBean is also a jsf managed bean, and i wanted to use the scope defined in my jsf-config.xml (application scope).
    Following the documentation, i have declared my applicationBean like this in applicationContext.xml

    Code:

    <bean id="applicationBean"  class="com.myapp.jsf.beans.ApplicationBean" singleton="false">
          <property name="persistenceManager">
             <ref  bean="persistenceManagerTarget"/>
          </property>
    < /bean>

    and in my jsf-config i have defined the applicationBean as following
    Code:

    <managed-bean>
        <managed-bean-name>applicationBean</managed-bean-name>
        <managed-bean-class>de.mindmatters.faces.spring.support.SpringManagedBeanFactory</managed-bean-class>
        <managed-bean-scope>application</managed-bean-scope>
      </managed-bean>

    However, when i call my applicationBean from a jsp page, for example, i am receiving the followign exception:

    Code:

    java.lang.ExceptionInInitializerError
       at de.mindmatters.faces.spring.support.DelegatingVariableResolver.getFacesSpringWebApplicationContext(DelegatingVariableResolver.java:156)
       at de.mindmatters.faces.spring.support.DelegatingVariableResolver.resolveVariable(DelegatingVariableResolver.java:140)
       at org.apache.myfaces.el.ValueBindingImpl$ELVariableResolver.resolveVariable(ValueBindingImpl.java:637)
       at org.apache.commons.el.NamedValue.evaluate(NamedValue.java:124)
       at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:140)
       at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:441)
       at javax.faces.component.UIOutput.getValue(UIOutput.java:147)
       at org.apache.myfaces.renderkit.RendererUtils.getStringValue(RendererUtils.java:296)
       at org.apache.myfaces.renderkit.html.HtmlLabelRenderer.encodeBegin(HtmlLabelRenderer.java:128)
       at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:675)
       at org.apache.myfaces.renderkit.RendererUtils.renderChild(RendererUtils.java:485)
       at org.apache.myfaces.renderkit.html.HtmlGridRenderer.renderChildren(HtmlGridRenderer.java:253)
       at org.apache.myfaces.renderkit.html.HtmlGridRenderer.encodeEnd(HtmlGridRenderer.java:131)
       at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:712)
       at javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:616)
       at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:539)
       at org.apache.myfaces.taglib.UIComponentBodyTagBase.doEndTag(UIComponentBodyTagBase.java:98)
       at org.apache.jsp.insertBody_jsp._jspx_meth_h_panelGrid_0(insertBody_jsp.java:280)
       at org.apache.jsp.insertBody_jsp._jspx_meth_h_form_0(insertBody_jsp.java:181)
       at org.apache.jsp.insertBody_jsp._jspx_meth_f_view_0(insertBody_jsp.java:151)
       at org.apache.jsp.insertBody_jsp._jspService(insertBody_jsp.java:100)
       at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
       at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
       at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
       at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
       at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:703)
       at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:589)
       at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
       at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:966)
       at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:581)
       at org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:137)
       at org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:177)
       at org.apache.struts.tiles.taglib.InsertTag.doInclude(InsertTag.java:756)
       at org.apache.struts.tiles.taglib.InsertTag$InsertHandler.doEndTag(InsertTag.java:888)
       at org.apache.struts.tiles.taglib.InsertTag.doEndTag(InsertTag.java:458)
       at org.apache.jsp.layout.classicLayout_002dsm_jsp._jspx_meth_tiles_insert_1(classicLayout_002dsm_jsp.java:299)
       at org.apache.jsp.layout.classicLayout_002dsm_jsp._jspService(classicLayout_002dsm_jsp.java:117)
       at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
       at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
       at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
       at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
       at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:703)
       at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:589)
       at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
       at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:966)
       at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:581)
       at org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:137)
       at org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:177)
       at org.apache.struts.tiles.taglib.InsertTag.doInclude(InsertTag.java:756)
       at org.apache.struts.tiles.taglib.InsertTag$InsertHandler.doEndTag(InsertTag.java:888)
       at org.apache.struts.tiles.taglib.InsertTag.doEndTag(InsertTag.java:458)
       at org.apache.jsp.insert_jsp._jspx_meth_tiles_insert_0(insert_jsp.java:102)
       at org.apache.jsp.insert_jsp._jspService(insert_jsp.java:59)
       at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
       at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
       at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
       at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
       at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:703)
       at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
       at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
       at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
       at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:405)
       at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:280)
       at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:300)
       at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
       at de.mindmatters.faces.spring.support.RequestHandledFilter.doFilter(RequestHandledFilter.java:150)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
       at net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:292)
       at net.sf.acegisecurity.wrapper.ContextHolderAwareRequestFilter.doFilter(ContextHolderAwareRequestFilter.java:50)
       at net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
       at net.sf.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:74)
       at net.sf.acegisecurity.intercept.web.SecurityEnforcementFilter.doFilter(SecurityEnforcementFilter.java:182)
       at net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
       at net.sf.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:153)
       at net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
       at net.sf.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:114)
       at net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
       at net.sf.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:206)
       at net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
       at net.sf.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:305)
       at net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
       at net.sf.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:152)
       at net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
       at net.sf.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:173)
       at net.sf.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:125)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
       at net.sf.acegisecurity.wrapper.ContextHolderAwareRequestFilter.doFilter(ContextHolderAwareRequestFilter.java:50)
       at net.sf.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:125)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
       at net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:292)
       at net.sf.acegisecurity.wrapper.ContextHolderAwareRequestFilter.doFilter(ContextHolderAwareRequestFilter.java:50)
       at net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
       at net.sf.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:84)
       at net.sf.acegisecurity.intercept.web.SecurityEnforcementFilter.doFilter(SecurityEnforcementFilter.java:182)
       at net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
       at net.sf.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:153)
       at net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
       at net.sf.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:114)
       at net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
       at net.sf.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:206)
       at net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
       at net.sf.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:305)
       at net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
       at net.sf.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:225)
       at net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
       at net.sf.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:173)
       at net.sf.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:125)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
       at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
       at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
       at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:72)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
       at org.jboss.web.tomcat.security.JBossSecurityMgrRealm.invoke(JBossSecurityMgrRealm.java:275)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
       at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
       at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
       at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
       at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
       at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
       at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
       at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
       at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
       at java.lang.Thread.run(Thread.java:534)
    Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'applicationBean' defined in ServletContext resource [/WEB-INF/faces-managed-beans.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.FatalBeanException: Could not instantiate class [de.mindmatters.faces.spring.support.SpringManagedBeanFactory]: no default constructor found; nested exception is java.lang.NoSuchMethodException: de.mindmatters.faces.spring.support.SpringManagedBeanFactory.<init>()
       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:370)
       at de.mindmatters.faces.spring.ManagedBeanFactory.createNonManagedBean(ManagedBeanFactory.java:73)
       at de.mindmatters.faces.spring.support.SpringManagedBeanFactory.createManagedBean(SpringManagedBeanFactory.java:39)
       at de.mindmatters.faces.spring.ManagedBeanFactory.createBean(ManagedBeanFactory.java:68)
       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:226)
       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:147)
       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:275)
       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:318)
       at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:134)
       at de.mindmatters.faces.spring.FacesConfigWebApplicationContext.refresh(FacesConfigWebApplicationContext.java:300)
       at de.mindmatters.faces.spring.support.DelegatingVariableResolver$GetFacesConfigWebApplicationContext.<clinit>(DelegatingVariableResolver.java:113)
       ... 152 more
    Caused by: org.springframework.beans.FatalBeanException: Could not instantiate class [de.mindmatters.faces.spring.support.SpringManagedBeanFactory]: no default constructor found; nested exception is java.lang.NoSuchMethodException: de.mindmatters.faces.spring.support.SpringManagedBeanFactory.<init>()
       at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:79)
       at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:49)
       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:453)
       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:333)
       ... 162 more
    Caused by: java.lang.NoSuchMethodException: de.mindmatters.faces.spring.support.SpringManagedBeanFactory.<init>()
       at java.lang.Class.getConstructor0(Class.java:1929)
       at java.lang.Class.getDeclaredConstructor(Class.java:1293)
       at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:76)

    anyone could help me out?

    thanks in advance and regards
    marco

     
    • Andreas Kuhrwahl

      Hello Marco,

      first of all there is no documentation. Sorry for that, we will support one as soon as possible. Just have a look at the testsuite - this sample app should advise you to set up and use jsf-spring properly.
      Just a question: why do you want to scope a spring managed bean with an application scope. Just declare the spring managed bean as singleton and reference it from where you want (e.g. jsp or faces-config).
      jsf-spring just supports request and session scope for spring manged beans. See de.mindmatters.faces.spring.RequestScope and de.mindmatters.faces.spring.SessionScope and the testsuite for examples.

       
    • marco mistroni

      marco mistroni - 2005-10-11

      Hello Andreas,
        yes maybe i am just messing around
      my app works fine if i just declare the bean in appContexxt.xml & reference it from JSP.
      reason of why i moved to declare it as application scope was that i wanted to use JSTL within JSF (as i checked, it'snot so easy), and seeing the fact that JSTL didnt 'recognize' the spring bean in its tag, i decided to declare it  also in faces-config.
      anyway, i found an alternative solution, so i don' tneed  the application bean also in faces config.
      I have one additional question though: is it possible to split applicationContext.xml in multiiple files and have jsf-spring filter load all of them?   i was able to do that in spring, but i found no docs or init parameters for jsf-spring listeners..

      is it possible? if so, which parameters need to be configured?

      thanks in advance and regards
      marco

       
      • Thomas Jachmann

        Thomas Jachmann - 2005-10-11

        You can just declare multiple application contexts as you would do with standalone spring, since actually, spring loads them.

        HTH,
        Thomas

         
      • Andreas Kuhrwahl

        Hello marco,
        jsf-spring builds its own webApplicationContext for the *faces-config.xml* files and uses the applicationcontext loaded with spring contextloader as parent. You can split your faces-config files like spring does. check the jsf docs for further information and have a look at our testsuite - there are examples for splitting faces-config files...

        andy

         

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.