You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by nt...@shawsystems.com on 2006/01/20 19:48:44 UTC

Servlet Exception occurs in TilesRequestProcessor when using a Multipart form.

I have a struts application that is using tiles and weblogic.  When I try 
to use a multipart form I get the Servlet Exception listed below.  I think 
I have traced it down to the UrlController class.  The execute method 
creates a RequestDispatcher and tries to call the include method.  The 
request that is being passed at this point is the MultipartRequestWrapper. 
 It seems that the container does not know what to do with this.  I 
noticed that there is code in the RequestProcessor's doForward method that 
unwraps the request.  Is this needed here?

        // Unwrap the multipart request, if there is one.
        if (request instanceof MultipartRequestWrapper) {
            request = ((MultipartRequestWrapper) request).getRequest();
        }


The action that handles this request is working ok.  The problem occurs 
after returning from the execute method of the action.  Is there a work 
around for this or some other cause I should look at for this error?


javax.servlet.ServletException: Original request not available
        at 
org.apache.struts.tiles.TilesRequestProcessor.processTilesDefinition(
TilesRequestProcessor.java:226)
        at 
org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(
TilesRequestProcessor.java:302)
        at org.apache.struts.action.RequestProcessor.process(
RequestProcessor.java:229)
        at org.apache.struts.action.ActionServlet.process(
ActionServlet.java:1194)
        at org.apache.struts.action.ActionServlet.doPost(
ActionServlet.java:432)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at 
weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(
ServletStubImpl.java:996)
        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(
ServletStubImpl.java:419)
        at weblogic.servlet.internal.TailFilter.doFilter(
TailFilter.java:28)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(
FilterChainImpl.java:27)
        at shaw.spectrum.web.security.CompressionFilter.doFilter(
CompressionFilter.java:38)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(
FilterChainImpl.java:27)
        at shaw.spectrum.web.security.FilterAction.run(
FilterAction.java:42)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(
AuthenticatedSubject.java:363)
        at weblogic.security.service.SecurityManager.runAs(
SecurityManager.java:144)
        at weblogic.security.Security.runAs(Security.java:61)
        at shaw.spectrum.web.security.LoginFilter.loggedInUser(
LoginFilter.java:71)
        at shaw.spectrum.web.security.LoginFilter.doFilter(
LoginFilter.java:51)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(
FilterChainImpl.java:27)
        at 
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(
WebAppServletContext.java:6458)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(
AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(
SecurityManager.java:118)
        at weblogic.servlet.internal.WebAppServletContext.invokeServlet(
WebAppServletContext.java:3661)
        at weblogic.servlet.internal.ServletRequestImpl.execute(
ServletRequestImpl.java:2630)
        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
<Jan 20, 2006 11:25:10 AM EST> <Error> <HTTP> <BEA-101018> 
<[ServletContext(id=23389154,name=spectrum,context-path=/spectrum)] 
Servlet failed with ServletException
javax.servlet.ServletException: Original request not available
        at weblogic.servlet.internal.RequestDispatcherImpl.include(
RequestDispatcherImpl.java:473)
        at weblogic.servlet.internal.RequestDispatcherImpl.include(
RequestDispatcherImpl.java:412)
        at org.apache.struts.tiles.UrlController.execute(
UrlController.java:89)
        at 
org.apache.struts.tiles.TilesRequestProcessor.processTilesDefinition(
TilesRequestProcessor.java:219)
        at 
org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(
TilesRequestProcessor.java:302)
        at org.apache.struts.action.RequestProcessor.process(
RequestProcessor.java:229)
        at org.apache.struts.action.ActionServlet.process(
ActionServlet.java:1194)
        at org.apache.struts.action.ActionServlet.doPost(
ActionServlet.java:432)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at 
weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(
ServletStubImpl.java:996)
        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(
ServletStubImpl.java:419)
        at weblogic.servlet.internal.TailFilter.doFilter(
TailFilter.java:28)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(
FilterChainImpl.java:27)
        at shaw.spectrum.web.security.CompressionFilter.doFilter(
CompressionFilter.java:38)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(
FilterChainImpl.java:27)
        at shaw.spectrum.web.security.FilterAction.run(
FilterAction.java:42)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(
AuthenticatedSubject.java:363)
        at weblogic.security.service.SecurityManager.runAs(
SecurityManager.java:144)
        at weblogic.security.Security.runAs(Security.java:61)
        at shaw.spectrum.web.security.LoginFilter.loggedInUser(
LoginFilter.java:71)
        at shaw.spectrum.web.security.LoginFilter.doFilter(
LoginFilter.java:51)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(
FilterChainImpl.java:27)
        at 
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(
WebAppServletContext.java:6458)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(
AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(
SecurityManager.java:118)
        at weblogic.servlet.internal.WebAppServletContext.invokeServlet(
WebAppServletContext.java:3661)
        at weblogic.servlet.internal.ServletRequestImpl.execute(
ServletRequestImpl.java:2630)
        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
> 

Nick E. Tsengas
Software Developer
Shaw Systems Associates, Inc.
ntsengas@shawsystems.com
804-272-3800 x211
804-272-1727 fax
Note: This communication may contain privileged, proprietary, or other 
confidential information. It is intended solely for the use of the 
intended recipient. Unauthorized use of this information is prohibited. 
Please notify the sender if you have received this communication in error.

Re: Servlet Exception occurs in TilesRequestProcessor when using a Multipart form.

Posted by dennis labajo <dn...@gmail.com>.
I'm getting the same error as this guy....has anybody encountered this
before and fixed it?

Thanks,

Dennis.


On 1/20/06, ntsengas@shawsystems.com <nt...@shawsystems.com> wrote:
>
> I have a struts application that is using tiles and weblogic.  When I try
> to use a multipart form I get the Servlet Exception listed below.  I think
> I have traced it down to the UrlController class.  The execute method
> creates a RequestDispatcher and tries to call the include method.  The
> request that is being passed at this point is the MultipartRequestWrapper.
> It seems that the container does not know what to do with this.  I
> noticed that there is code in the RequestProcessor's doForward method that
> unwraps the request.  Is this needed here?
>
>        // Unwrap the multipart request, if there is one.
>        if (request instanceof MultipartRequestWrapper) {
>            request = ((MultipartRequestWrapper) request).getRequest();
>        }
>
>
> The action that handles this request is working ok.  The problem occurs
> after returning from the execute method of the action.  Is there a work
> around for this or some other cause I should look at for this error?
>
>
> javax.servlet.ServletException: Original request not available
>        at
> org.apache.struts.tiles.TilesRequestProcessor.processTilesDefinition(
> TilesRequestProcessor.java:226)
>        at
> org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(
> TilesRequestProcessor.java:302)
>        at org.apache.struts.action.RequestProcessor.process(
> RequestProcessor.java:229)
>        at org.apache.struts.action.ActionServlet.process(
> ActionServlet.java:1194)
>        at org.apache.struts.action.ActionServlet.doPost(
> ActionServlet.java:432)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>        at
> weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(
> ServletStubImpl.java:996)
>        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(
> ServletStubImpl.java:419)
>        at weblogic.servlet.internal.TailFilter.doFilter(
> TailFilter.java:28)
>        at weblogic.servlet.internal.FilterChainImpl.doFilter(
> FilterChainImpl.java:27)
>        at shaw.spectrum.web.security.CompressionFilter.doFilter(
> CompressionFilter.java:38)
>        at weblogic.servlet.internal.FilterChainImpl.doFilter(
> FilterChainImpl.java:27)
>        at shaw.spectrum.web.security.FilterAction.run(
> FilterAction.java:42)
>        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(
> AuthenticatedSubject.java:363)
>        at weblogic.security.service.SecurityManager.runAs(
> SecurityManager.java:144)
>        at weblogic.security.Security.runAs(Security.java:61)
>        at shaw.spectrum.web.security.LoginFilter.loggedInUser(
> LoginFilter.java:71)
>        at shaw.spectrum.web.security.LoginFilter.doFilter(
> LoginFilter.java:51)
>        at weblogic.servlet.internal.FilterChainImpl.doFilter(
> FilterChainImpl.java:27)
>        at
> weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run
> (
> WebAppServletContext.java:6458)
>        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(
> AuthenticatedSubject.java:321)
>        at weblogic.security.service.SecurityManager.runAs(
> SecurityManager.java:118)
>        at weblogic.servlet.internal.WebAppServletContext.invokeServlet(
> WebAppServletContext.java:3661)
>        at weblogic.servlet.internal.ServletRequestImpl.execute(
> ServletRequestImpl.java:2630)
>        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
>        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
> <Jan 20, 2006 11:25:10 AM EST> <Error> <HTTP> <BEA-101018>
> <[ServletContext(id=23389154,name=spectrum,context-path=/spectrum)]
> Servlet failed with ServletException
> javax.servlet.ServletException: Original request not available
>        at weblogic.servlet.internal.RequestDispatcherImpl.include(
> RequestDispatcherImpl.java:473)
>        at weblogic.servlet.internal.RequestDispatcherImpl.include(
> RequestDispatcherImpl.java:412)
>        at org.apache.struts.tiles.UrlController.execute(
> UrlController.java:89)
>        at
> org.apache.struts.tiles.TilesRequestProcessor.processTilesDefinition(
> TilesRequestProcessor.java:219)
>        at
> org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(
> TilesRequestProcessor.java:302)
>        at org.apache.struts.action.RequestProcessor.process(
> RequestProcessor.java:229)
>        at org.apache.struts.action.ActionServlet.process(
> ActionServlet.java:1194)
>        at org.apache.struts.action.ActionServlet.doPost(
> ActionServlet.java:432)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>        at
> weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(
> ServletStubImpl.java:996)
>        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(
> ServletStubImpl.java:419)
>        at weblogic.servlet.internal.TailFilter.doFilter(
> TailFilter.java:28)
>        at weblogic.servlet.internal.FilterChainImpl.doFilter(
> FilterChainImpl.java:27)
>        at shaw.spectrum.web.security.CompressionFilter.doFilter(
> CompressionFilter.java:38)
>        at weblogic.servlet.internal.FilterChainImpl.doFilter(
> FilterChainImpl.java:27)
>        at shaw.spectrum.web.security.FilterAction.run(
> FilterAction.java:42)
>        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(
> AuthenticatedSubject.java:363)
>        at weblogic.security.service.SecurityManager.runAs(
> SecurityManager.java:144)
>        at weblogic.security.Security.runAs(Security.java:61)
>        at shaw.spectrum.web.security.LoginFilter.loggedInUser(
> LoginFilter.java:71)
>        at shaw.spectrum.web.security.LoginFilter.doFilter(
> LoginFilter.java:51)
>        at weblogic.servlet.internal.FilterChainImpl.doFilter(
> FilterChainImpl.java:27)
>        at
> weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run
> (
> WebAppServletContext.java:6458)
>        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(
> AuthenticatedSubject.java:321)
>        at weblogic.security.service.SecurityManager.runAs(
> SecurityManager.java:118)
>        at weblogic.servlet.internal.WebAppServletContext.invokeServlet(
> WebAppServletContext.java:3661)
>        at weblogic.servlet.internal.ServletRequestImpl.execute(
> ServletRequestImpl.java:2630)
>        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
>        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
> >
>
> Nick E. Tsengas
> Software Developer
> Shaw Systems Associates, Inc.
> ntsengas@shawsystems.com
> 804-272-3800 x211
> 804-272-1727 fax
> Note: This communication may contain privileged, proprietary, or other
> confidential information. It is intended solely for the use of the
> intended recipient. Unauthorized use of this information is prohibited.
> Please notify the sender if you have received this communication in error.
>