I have a standard file upload code that works with no issues on windows (both xp and 7) running on tomcat and called from a jsp page. But it throws an IndexOutOfBoundsException when running on a unix machine. I'm copying the code below. Any idea? Just to get one possible issue out of the way, the path is correct and the image file is written to the directory it should be written to, but with 0 bytes.
Thanks! I'll really appreciate any help with this.
The stack trace:
java.lang.IndexOutOfBoundsException at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(FileOutputStream.java:260)
at FileUpload.uploadFile(FileUpload.java:70)
at org.apache.jsp.il_005fIL.upload_jsp._jspService(upload_jsp.java:75)
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 com.village.common.action.SearchFilter.doFilter(SearchFilter.java:32)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at com.opensymphony.oscache.web.filter.CacheFilter.doFilter(CacheFilter.java:175)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738)
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.valves.FastCommonAccessLogValve.invoke(FastCommonAccessLogValve.java:482)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:595)
The code:
This message was edited 1 time. Last update was at by eddy johns
Do you have the solution? I also facing the same problem as you, which is running in window but not in linux. Looking for your feedback. Thanks
Lorand Komaromi
Ranch Hand
Joined: Oct 08, 2009
Posts: 276
posted
0
Don't hardcode the path separators, use File.separator instead of \\!
OCJP 6 (93%)
eddy johns
Ranch Hand
Joined: Feb 16, 2010
Posts: 67
posted
0
Here's the code from my jsp page. Note that I don't have a gui and this is just the server side, but your form should connect with this with no problem. The full code is on the web somewhere but I can't find it this morning. Also, you will need to add the commons fileupload jar to your build path. You can find the latest here: http://commons.apache.org/fileupload/download_fileupload.cgi. Good luck!
choong wing cheong
Greenhorn
Joined: Mar 21, 2010
Posts: 2
posted
0
Hi eddy,
Thanks for your code. It is worked.
subject: file upload works on windows, doesn't on unix