[Building Sakai] cannot start my sakai tool

Mark Norton markjnorton at earthlink.net
Thu Jun 18 08:51:22 PDT 2009


I ran into a very similar problem myself, recently.  I was aware of the 
init-param issue, but setting it didn't allow me to upload files using 
Apache Commons File Upload v 1.2.1.  I was getting exceptions from the 
RequestFilter.  In my case, I solved this by eliminating the use of the 
RequestFilter.  That solved my problem but might not solve yours, Phuc.  
The RequestFilter is required for tools that will be tightly integrated 
into Sakai as tools that run in the Sakai portal.  In my case, I was 
writing a REST request handler and didn't need the RequestFilter support 
(session maintenance, for example).

- Mark Norton

Phuc Bui wrote:
>
> It still does not work L.
>
> I have include some file that involve in uploading function.
>
> Index.jsp is the page to use upload function
>
> importedUserService: bean to handle upload
>
> others are configuration files.
>
>  
>
> By the way, to use uploading function of tomahawk we have to use 
> UploadedFile right? But we should not define it in Spring files or 
> faces-config files right ?
>
>  
>
> Thanks,
>
> Phuc Bui
>
>  
>
> *From:* Steve Swinsburg [mailto:s.swinsburg at lancaster.ac.uk]
> *Sent:* Thursday, June 18, 2009 9:38 PM
> *To:* Phuc Bui
> *Cc:* Sakai Mailing List
> *Subject:* Re: [Building Sakai] cannot start my sakai tool
>
>  
>
> Hi Phuc,
>
>  
>
> Sakai intercepts the uploads so you need to add an init-param to your 
> request filter in web.xml to tell it not to. I had the same issue with 
> my Wicket apps.
>
>  
>
> <filter>
>
>        <filter-name>sakai.request</filter-name>
>
>        <filter-class>org.sakaiproject.util.RequestFilter</filter-class>
>
>  
>
>        <init-param>
>
>               <param-name>upload.enabled</param-name>
>
>               <param-value>false</param-value>
>
>        </init-param>
>
> </filter>
>
> <filter-mapping>
>
>        <filter-name>sakai.request</filter-name>
>
>        <servlet-name>sakai.yourtool</servlet-name>
>
>        <dispatcher>REQUEST</dispatcher>
>
>        <dispatcher>FORWARD</dispatcher>
>
>        <dispatcher>INCLUDE</dispatcher>
>
> </filter-mapping>
>
>  
>
>  
>
> cheers,
>
> Steve
>
>  
>
> ---
>
> Steve Swinsburg
>
> Portal Systems Developer
> Centre for e-Science
> Lancaster University
> Lancaster
>
> LA1 4YT
>
>  
>
> email: s.swinsburg at lancaster.ac.uk <mailto:s.swinsburg at lancaster.ac.uk>
>
> phone: +44 (0) 1524 594870
>
>  
>
>  
>
>  
>
>  
>
>
>
>  
>
> On 18 Jun 2009, at 15:24, Phuc Bui wrote:
>
>
>
> I have studied how to upload a file by tomahawk.
> If I try it as independent web application, it works.
> But then I do the same in Sakai the uploadedFile object returns null.
> So I wonder how to configure filter for tomahawk:
> <filter>
>                         <filter-name>ExtensionsFilter</filter-name>
>                         
> <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
>                         ...
>             </filter>
>
> <filter-mapping>
>                         <filter-name>ExtensionsFilter</filter-name>
>                         <servlet-name>FacesServlet</servlet-name>
>             </filter-mapping>
> <servlet-mapping>
>                         <servlet-name>FacesServlet</servlet-name>
>                         <url-pattern>*.jsf</url-pattern>
>             </servlet-mapping>
> <servlet-mapping>
>                         <servlet-name>FacesServlet</servlet-name>
>                         <url-pattern>*.faces</url-pattern>
>             </servlet-mapping>
> I wonder if "*.jsf" or "*.faces" is good when we develop in Sakai ? 
> Because I see the link in Sakai never have those? For example: 
> http://localhost:8080/portal/site/b49296c3-d3d8-45d3-8f35-54499ec31a51/page/335dc018-1079-4dd4-8625-850790e26b67
> So which pattern is good ?
>
> Thanks,
> Phuc Bui
>
> -----Original Message-----
> From: azeckoski at gmail.com [mailto:azeckoski at gmail.com] On Behalf Of 
> Aaron Zeckoski
> Sent: Monday, June 15, 2009 2:16 AM
> To: Phuc Bui
> Cc: sakai-dev at collab.sakaiproject.org 
> <mailto:sakai-dev at collab.sakaiproject.org>; ngoc hon
> Subject: Re: [Building Sakai] cannot start my sakai tool
>
> It looks like you are probably using the tomahawk component wrong. The
> value should be an EL path and your looks like instructions.
> http://myfaces.apache.org/tomahawk-project/tomahawk12/tagdoc/t_inputFileUpload.html
>
> You will probably get a faster and better response on their forums or
> the JSF forums.
> :-)
> -AZ
>
>
> On Sun, Jun 14, 2009 at 4:51 PM, Phuc Bui<phucbui2006 at yahoo.com.vn> wrote:
>
> Dear,
>
>      
>
>     When I index.jsp file look like this, it worked
>
>      
>
>     <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
>
>      
>
>     <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
>
>      
>
>      
>
>      
>
>     <f:view>
>
>      
>
>          Browse to the file that contains users data,
>
>      
>
>          then press upload to add those users to Sakai database.
>
>      
>
>     </f:view>
>
>      
>
>     But when I use tomahawk taglib, it threw errors as my previous post ?
>
>      
>
>     <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
>
>      
>
>     <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
>
>      
>
>     <%@ taglib prefix="t" uri="http://myfaces.apache.org/tomahawk" %>
>
>      
>
>      
>
>      
>
>     <f:view>
>
>      
>
>          Browse to the file that contains users data,
>
>      
>
>          then press upload to add those users to Sakai database.
>
>      
>
>          <h:form>
>
>      
>
>                <t:inputFileUpload value="Upload here: " />
>
>      
>
>                <h:commandButton action="success" value="Upload"/>
>
>      
>
>          </h:form>
>
>      
>
>     </f:view>
>
>      
>
>     Can you tell me why ??? How to solve this problem ???
>
>      
>
>      
>
>      
>
>     Because I saw these lines, so I think I did not use that tag correctly
>
>     ???
>
>      
>
>     caused by: java.lang.ClassCastException: java.lang.String
>
>      
>
>        at
>
>     org.apache.myfaces.custom.fileupload.HtmlFileUploadRenderer.encodeEnd(Htm
>
>      
>
>     lFileUploadRenderer.java:62)
>
>      
>
>        at
>
>     javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:539)
>
>      
>
>      
>
>      
>
>        at
>     javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:498)
>
>      
>
>        at
>     javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:366)
>
>      
>
>        at
>
>     org.apache.jsp.nluimportuser.index_jsp._jspx_meth_t_005finputFileUpload_0
>
>      
>
>      
>
>      
>
>     Thanks,
>
>      
>
>     Looking forward to your replies.
>
>      
>
>      
>
>      
>
>     Phuc Bui
>
>      
>
>     From: Phuc Bui [mailto:phucbui2006 at yahoo.com.vn]
>
>     Sent: Sunday, June 14, 2009 3:29 PM
>
>     To: 'sakai-dev at collab.sakaiproject.org'
>
>     Subject: cannot start my sakai tool
>
>      
>
>      
>
>      
>
>     Dear all,
>
>      
>
>     I have created a JSF Sakai Tool by plugin.
>
>      
>
>     But I get this error when I select my tool L
>
>      
>
>     Please tell me how to solve this.
>
>      
>
>      
>
>      
>
>     org.sakaiproject.portal.api.PortalHandlerException:
>
>     org.sakaiproject.tool.api.ToolException: java.lang.String
>
>      
>
>        at
>
>     org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:891)
>
>      
>
>     caused by: org.sakaiproject.tool.api.ToolException: java.lang.String
>
>      
>
>        at
>
>     org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1343)
>
>      
>
>     caused by: javax.servlet.ServletException: java.lang.String
>
>      
>
>        at
>
>     org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
>
>      
>
>     caused by: javax.faces.FacesException: java.lang.String
>
>      
>
>        at
>
>     org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:211)
>
>      
>
>     caused by: org.apache.jasper.JasperException: java.lang.String
>
>      
>
>        at
>
>     org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
>
>      
>
>     caused by: java.lang.ClassCastException: java.lang.String
>
>      
>
>        at
>
>     org.apache.myfaces.custom.fileupload.HtmlFileUploadRenderer.encodeEnd(HtmlFileUploadRenderer.java:62)
>
>      
>
>        at
>
>     javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:539)
>
>      
>
>        at
>     javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:498)
>
>      
>
>        at
>     javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:366)
>
>      
>
>        at
>
>     org.apache.jsp.pages.index_jsp._jspx_meth_t_005finputFileUpload_005f0(index_jsp.java:160)
>
>      
>
>        at
>
>     org.apache.jsp.pages.index_jsp._jspx_meth_h_005fform_005f0(index_jsp.java:132)
>
>      
>
>        at
>
>     org.apache.jsp.pages.index_jsp._jspx_meth_f_005fview_005f0(index_jsp.java:100)
>
>      
>
>        at org.apache.jsp.pages.index_jsp._jspService(index_jsp.java:64)
>
>      
>
>        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:691)
>
>      
>
>        at
>
>     org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
>
>      
>
>        at
>
>     org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
>
>      
>
>        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:555)
>
>      
>
>        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:691)
>
>      
>
>        at
>
>     org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
>
>      
>
>        at
>
>     org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
>
>      
>
>        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:691)
>
>      
>
>        at
>
>     org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
>
>      
>
>        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:459)
>
>      
>
>        at
>
>     org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1343)
>
>      
>
>        at
>
>     org.sakaiproject.portal.charon.handlers.ToolHandler.doTool(ToolHandler.java:163)
>
>      
>
>        at
>
>     org.sakaiproject.portal.charon.handlers.ToolHandler.doGet(ToolHandler.java:86)
>
>      
>
>        at
>
>     org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:891)
>
>      
>
>        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:592)
>
>      
>
>        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:151)
>
>      
>
>        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)
>
>      
>
>      
>
>      
>
>      
>
>      
>
>      
>
>      
>
>      
>
>      
>
>     _______________________________________________
>
>     sakai-dev mailing list
>
>     sakai-dev at collab.sakaiproject.org
>
>     http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>
>      
>
>     TO UNSUBSCRIBE: send email to
>     sakai-dev-unsubscribe at collab.sakaiproject.org
>
>     with a subject of "unsubscribe"
>
>      
>
>      
>
>
>
>
> -- 
> Aaron Zeckoski (azeckoski (at) vt.edu)
> Senior Research Engineer - CARET - Cambridge University
> https://twitter.com/azeckoski - http://www.linkedin.com/in/azeckoski
> http://aaronz-sakai.blogspot.com/ -
> http://confluence.sakaiproject.org/confluence/display/~aaronz/
>
> _______________________________________________
> sakai-dev mailing list
> sakai-dev at collab.sakaiproject.org
> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>
> TO UNSUBSCRIBE: send email to 
> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of 
> "unsubscribe"
>
>  
>
>
> ------------------------------------------------------------------------
>
> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <%@ taglib 
> uri="http://java.sun.com/jsf/html" prefix="h" %> <%@ taglib prefix="t" 
> uri="http://myfaces.apache.org/tomahawk" %>
>
>
>     Import Users from the file excel
>
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> sakai-dev mailing list
> sakai-dev at collab.sakaiproject.org
> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>
> TO UNSUBSCRIBE: send email to sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of "unsubscribe"



More information about the sakai-dev mailing list