You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Andrew Hill <an...@gridnode.com> on 2003/04/04 07:39:07 UTC

File upload (multipart forms) on WebSphere. Can or not?

My colleague is trying to make our application run on WebSphere (WAS 5.0), however we are encountering an error submitting multipart forms. (Stacktrace pasted below)
(Needless to say it all works sweet on TomCat...)

Ive not had time to experiment with it myself, but it looks like WAS is barfing on the org.apache.struts.upload.MultipartRequestWrapper object that struts wraps multipart requests in so one can get at the parameters. This implements HttpServletRequest but doesnt extend javax.servlet.http.HttpServletRequestWrapper in order to maintain compatibility with Servlet2.2

Is it a requirement in WAS or the Servlet specs that all HttpServletRequest implementations extend this?

(And why would it cause a problem? I thought the struts wrapper is ditched before forwarding anyway?)




[4/4/03 11:18:13:734 GMT+08:00] 691323f4  I UOW=  source=com.gridnode.gtas.client.web.strutsbase.GTRequestProcessor class=com.gridnode.gtas.client.web.strutsbase.GTRequestProcessor method= org=IBM prod=WebSphere component=UNKNOWN
          Processing a 'POST' for path '/sysFoldersDispatchAction'
[4/4/03 11:18:13:795 GMT+08:00] 691323f4  I UOW=  source=com.gridnode.gtas.client.web.strutsbase.GTRequestProcessor class=com.gridnode.gtas.client.web.strutsbase.GTRequestProcessor method= org=IBM prod=WebSphere component=UNKNOWN
          Looking for ActionForm in OperationContext id=oc1
[4/4/03 11:18:13:795 GMT+08:00] 691323f4  I UOW=  source=com.gridnode.gtas.client.web.strutsbase.GTRequestProcessor class=com.gridnode.gtas.client.web.strutsbase.GTRequestProcessor method= org=IBM prod=WebSphere component=UNKNOWN
          Found ActionForm in OperationContext
[4/4/03 11:18:14:305 GMT+08:00] 691323f4  O UOW=  source=SystemOut org=IBM prod=WebSphere component=Application Server
          {
[4/4/03 11:18:14:305 GMT+08:00] 691323f4  I UOW=  source=com.gridnode.gtas.client.web.strutsbase.GTRequestProcessor class=com.gridnode.gtas.client.web.strutsbase.GTRequestProcessor method= org=IBM prod=WebSphere component=UNKNOWN
          Processing a 'POST' for path '/renderingAction'
[4/4/03 11:18:16:458 GMT+08:00] 691323f4  E UOW=  source=com.ibm.ws.webcontainer.srt.WebGroup org=IBM prod=WebSphere component=Application Server
          SRVE0026E: [Servlet Error]-[action]: java.lang.IllegalArgumentException: Request is not of javax.servlet.ServletRequestWrapper type
	at com.ibm.ws.webcontainer.webapp.WebAppDispatcherRequest.getWASProxiedHttpServletRequest(WebAppDispatcherRequest.java:155)
	at com.ibm.ws.webcontainer.webapp.WebAppDispatcherRequest.getSession(WebAppDispatcherRequest.java:234)
	at com.ibm.ws.webcontainer.webapp.WebAppDispatcherRequest.getSession(WebAppDispatcherRequest.java:219)
	at org.apache.struts.upload.MultipartRequestWrapper.getSession(MultipartRequestWrapper.java:242)
	at com.gridnode.gtas.client.web.strutsbase.GTRequestProcessor.processLocale(GTRequestProcessor.java:167)
	at com.gridnode.gtas.client.web.strutsbase.GTRequestProcessor.process(GTRequestProcessor.java:250)
	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1109)
	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:470)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
	at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
	at com.ibm.ws.webcontainer.servlet.ServicingServletState.service(StrictLifecycleServlet.java:333)
	at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
	at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:258)
	at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
	at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
	at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:867)
	at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:491)
	at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:173)
	at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:972)
	at org.apache.struts.action.RequestProcessor.processActionForward(RequestProcessor.java:408)
	at com.gridnode.gtas.client.web.strutsbase.GTRequestProcessor.process(GTRequestProcessor.java:299)
	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1109)
	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:470)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
	at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
	at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
	at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
	at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:258)
	at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
	at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:76)
	at com.gridnode.gtas.client.web.strutsbase.OperationContextFilter.doFilter(OperationContextFilter.java:75)
	at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:132)
	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:71)
	at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:863)
	at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:491)
	at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:173)
	at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:79)
	at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:199)
	at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
	at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:182)
	at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:331)
	at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
	at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:432)
	at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:343)
	at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:592)


---------------------------------------------------------------------
To unsubscribe, e-mail: struts-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: struts-user-help@jakarta.apache.org