[Building Sakai] Sakai tool problem

Francisco francisco.saez.sakai at gmail.com
Mon Aug 30 01:11:09 PDT 2010


Hi all,
I'm developing a sakai tool with Sakai Developer (eclipse plugin). The 
tool works correctly, and now I want to establish it as a Sakai 
component to allow access to other tools.

The components.xml file has soething like this:

<bean id="org.sakaiproject.notes.logic.api.NotesLogic" 
class="org.sakaiproject.notes.logic.NotesLogicImpl" init-method="init" 
singleton="true">
<property name="dataModelService" 
ref="org.sakaiproject.notes.dao.api.DataModelService" />
<property name="externalLogic" 
ref="org.sakaiproject.notes.logic.api.ExternalLogic" />
</bean>

But when I try to inyect the component via Spring, I get this exception:

ERROR http-8080-Processor22 
org.apache.myfaces.shared_impl.util.ClassUtils - Cannot coerce 
org.sakaiproject.notes.logic.NotesLogicImpl to 
org.sakaiproject.notes.logic.api.NotesLogic
javax.servlet.jsp.el.ELException: Attempt to coerce a value of type 
"org.sakaiproject.notes.logic.NotesLogicImpl" to type 
"org.sakaiproject.notes.logic.api.NotesLogic"
     at org.apache.commons.el.Logger.logError(Logger.java:481)
     at org.apache.commons.el.Logger.logError(Logger.java:498)
     at org.apache.commons.el.Logger.logError(Logger.java:566)
     at org.apache.commons.el.Coercions.coerceToObject(Coercions.java:799)
     at org.apache.commons.el.Coercions.coerce(Coercions.java:343)
     at 
org.apache.myfaces.shared_impl.util.ClassUtils.convertToType(ClassUtils.java:304)
     at 
org.apache.myfaces.config.ManagedBeanBuilder.initializeProperties(ManagedBeanBuilder.java:188)
     at 
org.apache.myfaces.config.ManagedBeanBuilder.buildManagedBean(ManagedBeanBuilder.java:55)
     at 
org.apache.myfaces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:314)
     at 
org.sakaiproject.jsf.app.SakaiVariableResolver.resolveVariable(SakaiVariableResolver.java:76)
     at 
org.apache.myfaces.el.ValueBindingImpl$ELVariableResolver.resolveVariable(ValueBindingImpl.java:570)
     at org.apache.commons.el.NamedValue.evaluate(NamedValue.java:124)
     at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:140)
     at 
org.apache.commons.el.ExpressionString.evaluate(ExpressionString.java:114)
     at 
org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:386)
     at javax.faces.component.UIOutput.getValue(UIOutput.java:80)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     at java.lang.reflect.Method.invoke(Method.java:585)
     at 
javax.faces.component._ComponentAttributesMap.getComponentProperty(_ComponentAttributesMap.java:387)
     at 
javax.faces.component._ComponentAttributesMap.get(_ComponentAttributesMap.java:235)
     at 
org.sakaiproject.jsf.util.RendererUtil.getAttribute(RendererUtil.java:88)
     at 
org.sakaiproject.jsf.renderer.ViewTitleRenderer.encodeBegin(ViewTitleRenderer.java:65)
     at 
javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:515)
     at 
javax.faces.webapp.UIComponentTag.encodeBegin(UIComponentTag.java:467)
     at 
javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:320)
     at 
org.apache.jsp.pruebanotes.HelloWorld_jsp._jspx_meth_sakai_005fview_005ftitle_005f0(HelloWorld_jsp.java:221)
     at 
org.apache.jsp.pruebanotes.HelloWorld_jsp._jspx_meth_sakai_005fview_005fcontent_005f0(HelloWorld_jsp.java:184)
     at 
org.apache.jsp.pruebanotes.HelloWorld_jsp._jspx_meth_sakai_005fview_005fcontainer_005f0(HelloWorld_jsp.java:157)
     at 
org.apache.jsp.pruebanotes.HelloWorld_jsp._jspx_meth_f_005fview_005f0(HelloWorld_jsp.java:121)
     at 
org.apache.jsp.pruebanotes.HelloWorld_jsp._jspService(HelloWorld_jsp.java:87)
     at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
     at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
     at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
     at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
     at 
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679)
     at 
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)
     at 
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399)
     at 
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
     at 
org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:419)
     at 
org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:211)
     at 
org.sakaiproject.jsf.app.SakaiViewHandler.renderView(SakaiViewHandler.java:137)
     at 
org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
     at 
org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)
     at javax.faces.webapp.FacesServlet.service(FacesServlet.java:140)
     at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
     at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
     at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:580)
     at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
     at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
     at 
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679)
     at 
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)
     at 
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399)
     at 
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
     at org.sakaiproject.jsf.util.JsfTool.dispatch(JsfTool.java:221)
     at org.sakaiproject.jsf.util.JsfTool.doGet(JsfTool.java:241)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
     at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
     at 
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679)
     at 
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)
     at 
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:364)
     at 
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
     at 
org.sakaiproject.tool.impl.ActiveToolComponent$MyActiveTool.forward(ActiveToolComponent.java:500)
     at 
org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1216)
     at 
org.sakaiproject.portal.charon.handlers.ToolHandler.doTool(ToolHandler.java:204)
     at 
org.sakaiproject.portal.charon.handlers.ToolHandler.doGet(ToolHandler.java:96)
     at 
org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:768)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
     at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
     at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:641)
     at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
     at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
     at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
     at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
     at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
     at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
     at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
     at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
     at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
     at 
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
     at 
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
     at 
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
     at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
     at java.lang.Thread.run(Thread.java:595)

If I try to load the component via "componentManager" I get null.

Anyone can help me with this. Thanks and regards.


More information about the sakai-dev mailing list