I am getting "javax.faces.FacesException: Error performing conversion of value" error when i am creating a new tool for sakai 2.9 cle usinf JSF and Spring..
This is my stacktrace:
org.sakaiproject.portal.api.PortalHandlerException: org.sakaiproject.tool.api.ToolException: org.apache.jasper.JasperException: javax.faces.el.EvaluationException: javax.faces.FacesException: javax.faces.FacesException: Error performing conversion of value 'org.sakaiproject.component.app.attendance.AttendanceManagerImpl@721c3e' of type 'class com.sun.proxy.$Proxy61' to type 'interface org.sakaiproject.api.app.attendance.AttendanceManager' for managed bean 'AttendanceTool'.
at org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:894)
caused by: org.sakaiproject.tool.api.ToolException: org.apache.jasper.JasperException: javax.faces.el.EvaluationException: javax.faces.FacesException: javax.faces.FacesException: Error performing conversion of value 'org.sakaiproject.component.app.attendance.AttendanceManagerImpl@721c3e' of type 'class com.sun.proxy.$Proxy61' to type 'interface org.sakaiproject.api.app.attendance.AttendanceManager' for managed bean 'AttendanceTool'.
at org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1483)
caused by: org.apache.jasper.JasperException: javax.faces.el.EvaluationException: javax.faces.FacesException: javax.faces.FacesException: Error performing conversion of value 'org.sakaiproject.component.app.attendance.AttendanceManagerImpl@721c3e' of type 'class com.sun.proxy.$Proxy61' to type 'interface org.sakaiproject.api.app.attendance.AttendanceManager' for managed bean 'AttendanceTool'.
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
caused by: javax.faces.el.EvaluationException: javax.faces.FacesException: javax.faces.FacesException: Error performing conversion of value 'org.sakaiproject.component.app.attendance.AttendanceManagerImpl@721c3e' of type 'class com.sun.proxy.$Proxy61' to type 'interface org.sakaiproject.api.app.attendance.AttendanceManager' for managed bean 'AttendanceTool'.
at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:143)
caused by: javax.faces.FacesException: javax.faces.FacesException: Error performing conversion of value 'org.sakaiproject.component.app.attendance.AttendanceManagerImpl@721c3e' of type 'class com.sun.proxy.$Proxy61' to type 'interface org.sakaiproject.api.app.attendance.AttendanceManager' for managed bean 'AttendanceTool'.
at com.sun.faces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:97)
caused by: javax.faces.FacesException: Error performing conversion of value 'org.sakaiproject.component.app.attendance.AttendanceManagerImpl@721c3e' of type 'class com.sun.proxy.$Proxy61' to type 'interface org.sakaiproject.api.app.attendance.AttendanceManager' for managed bean 'AttendanceTool'.
at com.sun.faces.config.ManagedBeanFactory.getConvertedValueConsideringPrimitives(ManagedBeanFactory.java:885)
at com.sun.faces.config.ManagedBeanFactory.setPropertiesIntoBean(ManagedBeanFactory.java:575)
at com.sun.faces.config.ManagedBeanFactory.newInstance(ManagedBeanFactory.java:253)
at com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:282)
at com.sun.faces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:97)
at org.sakaiproject.jsf.app.SakaiVariableResolver.resolveVariable(SakaiVariableResolver.java:76)
at com.sun.faces.el.impl.NamedValue.evaluate(NamedValue.java:145)
at com.sun.faces.el.impl.ComplexValue.evaluate(ComplexValue.java:166)
at com.sun.faces.el.impl.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:263)
at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:160)
at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:143)
at javax.faces.component.UIComponentBase$AttributesMap.get(UIComponentBase.java:1397)
at org.sakaiproject.jsf.attendance.AttendanceIfNotRender.encodeBegin(AttendanceIfNotRender.java:43)
at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:703)
at javax.faces.webapp.UIComponentTag.encodeBegin(UIComponentTag.java:613)
at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:565)
at org.apache.jsp.attendance.main_jsp._jspx_meth_attendance_005fattendance_005fifnot_005f0(main_jsp.java:393)
at org.apache.jsp.attendance.main_jsp._jspx_meth_h_005fform_005f0(main_jsp.java:302)
at org.apache.jsp.attendance.main_jsp._jspx_meth_sakai_005fview_005fcontent_005f0(main_jsp.java:272)
at org.apache.jsp.attendance.main_jsp._jspx_meth_sakai_005fview_005fcontainer_005f0(main_jsp.java:230)
at org.apache.jsp.attendance.main_jsp._jspx_meth_f_005fview_005f0(main_jsp.java:195)
at org.apache.jsp.attendance.main_jsp._jspService(main_jsp.java:141)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:346)
at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:152)
at org.sakaiproject.jsf.app.SakaiViewHandler.renderView(SakaiViewHandler.java:159)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:107)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:268)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:137)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:214)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:634)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
at org.sakaiproject.tool.attendance.AttendanceFilePickerServlet.dispatch(AttendanceFilePickerServlet.java:158)
at org.sakaiproject.jsf.util.JsfTool.doGet(JsfTool.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:634)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
at org.sakaiproject.tool.impl.ActiveToolComponent$MyActiveTool.forward(ActiveToolComponent.java:511)
at org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1483)
at org.sakaiproject.portal.charon.handlers.ToolHandler.doTool(ToolHandler.java:213)
at org.sakaiproject.portal.charon.handlers.ToolHandler.doGet(ToolHandler.java:96)
at org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:894)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:695)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1852)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:662)
And my faces-config.xml is
<?xml version="1.0"?>
<!DOCTYPE faces-config PUBLIC
"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
"http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
<faces-config>
<application>
<message-bundle>org.sakaiproject.tool.attendance.bundle.Messages</message-bundle>
<locale-config>
<default-locale>en</default-locale>
<supported-locale>de</supported-locale>
<supported-locale>fr</supported-locale>
<supported-locale>es</supported-locale>
</locale-config>
</application>
<!--sakai2 - take this out. <application>
<view-handler>
org.sakaiproject.jsf.custom.SakaiViewHandler
</view-handler>
<navigation-handler>
org.sakaiproject.jsf.custom.SakaiNavigationHandler
</navigation-handler>
<variable-resolver>
org.sakaiproject.jsf.custom.SakaiVariableResolver
</variable-resolver>
<state-manager>
org.sakaiproject.jsf.custom.SakaiStateManager
</state-manager>
</application> -->
<!-- =================== Tool Beans ============== -->
<managed-bean>
<description>AttendanceTool</description>
<managed-bean-name>AttendanceTool</managed-bean-name>
<managed-bean-class>org.sakaiproject.tool.attendance.AttendanceTool</managed-bean-class>
<!--sakai2 <managed-bean-scope>request</managed-bean-scope>-->
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<description>attendanceManager</description>
<property-name>attendanceManager</property-name>
<value>#{Components["org.sakaiproject.api.app.attendance.AttendanceManager"]}</value>
</managed-property>
<!-- <managed-property>
<description>logger</description>
<property-name>logger</property-name>
<value>#{Components["org.sakaiproject.service.framework.log.Logger"]}</value>
</managed-property>-->
<managed-property>
<description>attendanceService</description>
<property-name>attendanceService</property-name>
<value>#{Components["org.sakaiproject.api.app.attendance.AttendanceService"]}</value>
</managed-property>
<managed-property>
<description>contentHostingService</description>
<property-name>contentHostingService</property-name>
<value>#{Components["org.sakaiproject.content.api.ContentHostingService"]}</value>
</managed-property>
</managed-bean>
<component>
<component-type>SakaiAttendanceTable</component-type>
<component-class>org.sakaiproject.jsf.attendance.AttendanceTableComponent</component-class>
</component>
<component>
<component-type>SakaiAttendanceIframe</component-type>
<component-class>org.sakaiproject.jsf.attendance.AttendanceIframeComponent</component-class>
</component>
<component>
<component-type>SakaiAttendanceIf</component-type>
<component-class>org.sakaiproject.jsf.attendance.AttendanceIfComponent</component-class>
</component>
<component>
<component-type>SakaiAttendanceIfNot</component-type>
<component-class>org.sakaiproject.jsf.attendance.AttendanceIfNotComponent</component-class>
</component>
<component>
<component-type>AttendanceShowArea</component-type>
<component-class>org.sakaiproject.jsf.attendance.AttendanceShowAreaComponent</component-class>
</component>
<render-kit>
<renderer>
<component-family>SakaiAttendanceIframe</component-family>
<renderer-type>SakaiAttendanceIframeRender</renderer-type>
<renderer-class>org.sakaiproject.jsf.attendance.AttendanceIframeRender</renderer-class>
</renderer>
<renderer>
<component-family>SakaiAttendanceIf</component-family>
<renderer-type>SakaiAttendanceIfRender</renderer-type>
<renderer-class>org.sakaiproject.jsf.attendance.AttendanceIfRender</renderer-class>
</renderer>
<renderer>
<component-family>SakaiAttendanceIfNot</component-family>
<renderer-type>SakaiAttendanceIfNotRender</renderer-type>
<renderer-class>org.sakaiproject.jsf.attendance.AttendanceIfNotRender</renderer-class>
</renderer>
<renderer>
<component-family>AttendanceShowArea</component-family>
<renderer-type>AttendanceShowAreaRender</renderer-type>
<renderer-class>org.sakaiproject.jsf.attendance.AttendanceShowAreaRender</renderer-class>
</renderer>
</render-kit>
<navigation-rule>
<from-view-id>/attendance/main.jsp</from-view-id>
<navigation-case>
<from-outcome>main_edit</from-outcome>
<to-view-id>/attendance/main_edit.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>permission_error</from-outcome>
<to-view-id>/attendance/permission_error.jsp</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/attendance/main_edit.jsp</from-view-id>
<navigation-case>
<from-outcome>read</from-outcome>
<to-view-id>/attendance/read.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>main_edit</from-outcome>
<to-view-id>/attendance/main_edit.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>permission_error</from-outcome>
<to-view-id>/attendance/permission_error.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>delete_confirm</from-outcome>
<to-view-id>/attendance/delete_confirm.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>edit</from-outcome>
<to-view-id>/attendance/edit.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>edit_redirect</from-outcome>
<to-view-id>/attendance/edit_redirect.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>main</from-outcome>
<to-view-id>/attendance/main.jsp</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/attendance/delete_confirm.jsp</from-view-id>
<navigation-case>
<from-outcome>main_edit</from-outcome>
<to-view-id>/attendance/main_edit.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>permission_error</from-outcome>
<to-view-id>/attendance/permission_error.jsp</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/attendance/main_student.jsp</from-view-id>
<navigation-case>
<from-outcome>main_edit</from-outcome>
<to-view-id>/attendance/main_edit.jsp</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/attendance/edit_redirect.jsp</from-view-id>
<navigation-case>
<from-outcome>main_edit</from-outcome>
<to-view-id>/attendance/main_edit.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>permission_error</from-outcome>
<to-view-id>/attendance/permission_error.jsp</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/attendance/edit.jsp</from-view-id>
<navigation-case>
<from-outcome>main_edit</from-outcome>
<to-view-id>/attendance/main_edit.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>permission_error</from-outcome>
<to-view-id>/attendance/permission_error.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>preview</from-outcome>
<to-view-id>/attendance/preview.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>edit</from-outcome>
<to-view-id>/attendance/edit.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>add_attach</from-outcome>
<to-view-id>/attendance/add_attach.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>remove_attach_confirm</from-outcome>
<to-view-id>/attendance/remove_attach_confirm.jsp</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/attendance/read.jsp</from-view-id>
<navigation-case>
<from-outcome>main_edit</from-outcome>
<to-view-id>/attendance/main_edit.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>permission_error</from-outcome>
<to-view-id>/attendance/permission_error.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>read_preview</from-outcome>
<to-view-id>/attendance/read_preview.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>read</from-outcome>
<to-view-id>/attendance/read.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>add_attach</from-outcome>
<to-view-id>/attendance/add_attach.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>remove_attach_confirm</from-outcome>
<to-view-id>/attendance/remove_attach_confirm.jsp</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/attendance/preview.jsp</from-view-id>
<navigation-case>
<from-outcome>edit</from-outcome>
<to-view-id>/attendance/edit.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>preview</from-outcome>
<to-view-id>/attendance/preview.jsp</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/attendance/read_preview.jsp</from-view-id>
<navigation-case>
<from-outcome>read_preview</from-outcome>
<to-view-id>/attendance/read_preview.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>read</from-outcome>
<to-view-id>/attendance/read.jsp</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/attendance/add_attach.jsp</from-view-id>
<navigation-case>
<from-outcome>edit</from-outcome>
<to-view-id>/attendance/edit.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>read</from-outcome>
<to-view-id>/attendance/read.jsp</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/attendance/remove_attach_confirm.jsp</from-view-id>
<navigation-case>
<from-outcome>edit</from-outcome>
<to-view-id>/attendance/edit.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>read</from-outcome>
<to-view-id>/attendance/read.jsp</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
</faces-config>
This is a JSF error and not really related to Sakai. The issue that matters here is this one:
Generally this is caused by having a copy of the API in more than one classloader. Check to make sure you don't have the API jar in your JSF tool and also in shared (and also check that you do not have 2 versions of that jar).