Hi Felix,
thanks for the reply.

I switched to using request.getRequestParameterMap() in my POST.jsp, but nothing changed and the error is the same. After inspecting the stack trace and my repository again I think the error occurs when Sling tries to read the input and build the request parameter map, because my script is never compiled or executed (at least there is no compiled class in the repository).

To verify this I used an simple POST.jsp that just outputs a plain string and does not access any parameters. When I post my file I get the same exception.

Regards,
Alex


Felix Meschberger schrieb:
Hi Alexander,

If you upload the file with a multipart/form-data POST, Sling will
already have read the input and will provide the data in the
RequestParameterMap as RequestParameter instances, which allow you
access to the uploaded file data.

Hope, this helps.

Regards
Felix

Am Montag, den 21.01.2008, 01:01 +0100 schrieb Alexander Saar:
Hi all,
I have a problem with the file upload in Sling. I have a form that uploads a file and an according POST.jsp for handling the upload. The log shows that POST.jsp is resolved correct, but when I try to upload the file, I get the following exception:

javax.servlet.ServletException: null
        
org.apache.sling.scripting.resolver.impl.DefaultSlingScript.eval(DefaultSlingScript.java:97)
        
org.apache.sling.servlet.resolver.helper.SlingScriptServlet.service(SlingScriptServlet.java:74)
        
org.apache.sling.core.impl.request.RequestData.service(RequestData.java:415)
        
org.apache.sling.core.impl.SlingMainServlet.processRequest(SlingMainServlet.java:287)
        
org.apache.sling.core.impl.filter.RequestSlingFilterChain.render(RequestSlingFilterChain.java:48)
        
org.apache.sling.core.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:54)
        
org.apache.sling.core.impl.filter.ThemeResolverFilter.doFilter(ThemeResolverFilter.java:76)
        
org.apache.sling.core.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:52)
        
org.apache.sling.core.impl.filter.LocaleResolverFilter.doFilter(LocaleResolverFilter.java:85)
        
org.apache.sling.core.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:52)
        
org.apache.sling.core.impl.log.RequestLoggerFilter.doFilter(RequestLoggerFilter.java:206)
        
org.apache.sling.core.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:52)
        
org.apache.sling.core.impl.SlingMainServlet.service(SlingMainServlet.java:187)
        
org.apache.sling.core.impl.SlingMainServlet.service(SlingMainServlet.java:159)
        
org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90)
        
org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:109)
        
org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:75)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        
org.apache.sling.launcher.webapp.SlingServlet.service(SlingServlet.java:195)

*root cause*

javax.script.ScriptException: null
        
org.apache.sling.scripting.jsp.JspScriptEngineFactory$JspScriptEngine.eval(JspScriptEngineFactory.java:272)
        
org.apache.sling.scripting.resolver.impl.DefaultSlingScript.eval(DefaultSlingScript.java:85)
        
org.apache.sling.servlet.resolver.helper.SlingScriptServlet.service(SlingScriptServlet.java:74)
        
org.apache.sling.core.impl.request.RequestData.service(RequestData.java:415)
        
org.apache.sling.core.impl.SlingMainServlet.processRequest(SlingMainServlet.java:287)
        
org.apache.sling.core.impl.filter.RequestSlingFilterChain.render(RequestSlingFilterChain.java:48)
        
org.apache.sling.core.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:54)
        
org.apache.sling.core.impl.filter.ThemeResolverFilter.doFilter(ThemeResolverFilter.java:76)
        
org.apache.sling.core.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:52)
        
org.apache.sling.core.impl.filter.LocaleResolverFilter.doFilter(LocaleResolverFilter.java:85)
        
org.apache.sling.core.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:52)
        
org.apache.sling.core.impl.log.RequestLoggerFilter.doFilter(RequestLoggerFilter.java:206)
        
org.apache.sling.core.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:52)
        
org.apache.sling.core.impl.SlingMainServlet.service(SlingMainServlet.java:187)
        
org.apache.sling.core.impl.SlingMainServlet.service(SlingMainServlet.java:159)
        
org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90)
        
org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:109)
        
org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:75)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        
org.apache.sling.launcher.webapp.SlingServlet.service(SlingServlet.java:195)

*root cause*

java.lang.IllegalStateException: getReader() has already been called for this 
request
        org.apache.catalina.connector.Request.getInputStream(Request.java:978)
        
org.apache.catalina.connector.RequestFacade.getInputStream(RequestFacade.java:340)
        
javax.servlet.ServletRequestWrapper.getInputStream(ServletRequestWrapper.java:146)
        
org.apache.commons.fileupload.servlet.ServletRequestContext.getInputStream(ServletRequestContext.java:92)
        
org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:329)
        
org.apache.sling.core.impl.parameters.ParameterSupport.parseMultiPartPost(ParameterSupport.java:166)
        
org.apache.sling.core.impl.parameters.ParameterSupport.getRequestParameterMapInternal(ParameterSupport.java:110)
        
org.apache.sling.core.impl.parameters.ParameterSupport.getRequestParameter(ParameterSupport.java:87)
        
org.apache.sling.core.impl.parameters.ParameterSupport.getParameter(ParameterSupport.java:68)
        
org.apache.sling.core.impl.SlingHttpServletRequestImpl.getParameter(SlingHttpServletRequestImpl.java:125)
        
org.apache.sling.scripting.jsp.JspServletWrapperAdapter.preCompile(JspServletWrapperAdapter.java:78)
        
org.apache.sling.scripting.jsp.JspServletWrapperAdapter.service(JspServletWrapperAdapter.java:49)
        
org.apache.sling.scripting.jsp.JspScriptEngineFactory.callJsp(JspScriptEngineFactory.java:126)
        
org.apache.sling.scripting.jsp.JspScriptEngineFactory.access$000(JspScriptEngineFactory.java:71)
        
org.apache.sling.scripting.jsp.JspScriptEngineFactory$JspScriptEngine.eval(JspScriptEngineFactory.java:268)
        
org.apache.sling.scripting.resolver.impl.DefaultSlingScript.eval(DefaultSlingScript.java:85)
        
org.apache.sling.servlet.resolver.helper.SlingScriptServlet.service(SlingScriptServlet.java:74)
        
org.apache.sling.core.impl.request.RequestData.service(RequestData.java:415)
        
org.apache.sling.core.impl.SlingMainServlet.processRequest(SlingMainServlet.java:287)
        
org.apache.sling.core.impl.filter.RequestSlingFilterChain.render(RequestSlingFilterChain.java:48)
        
org.apache.sling.core.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:54)
        
org.apache.sling.core.impl.filter.ThemeResolverFilter.doFilter(ThemeResolverFilter.java:76)
        
org.apache.sling.core.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:52)
        
org.apache.sling.core.impl.filter.LocaleResolverFilter.doFilter(LocaleResolverFilter.java:85)
        
org.apache.sling.core.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:52)
        
org.apache.sling.core.impl.log.RequestLoggerFilter.doFilter(RequestLoggerFilter.java:206)
        
org.apache.sling.core.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:52)
        
org.apache.sling.core.impl.SlingMainServlet.service(SlingMainServlet.java:187)
        
org.apache.sling.core.impl.SlingMainServlet.service(SlingMainServlet.java:159)
        
org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90)
        
org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:109)
        
org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:75)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        
org.apache.sling.launcher.webapp.SlingServlet.service(SlingServlet.java:195)

Seems like somebody is calling getReader() before ParameterSupport code is executed. But I was not able to figure out where this happens.

Any ideas?

Regards,
Alex



Reply via email to