[appengine-java] Problem whit upload form multipart
Hola he probado el codigo siguiente para recibir un formulario multipart en mi aplicacion : Test folowing code import org.apache.commons.fileupload.FileItemStream; import org.apache.commons.fileupload.FileItemIterator; import org.apache.commons.fileupload.servlet.ServletFileUpload; import java.io.InputStream; import java.io.IOException; import java.util.logging.Logger; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class FileUpload extends HttpServlet { private static final Logger log = Logger.getLogger(FileUpload.class.getName()); public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { try { ServletFileUpload upload = new ServletFileUpload(); res.setContentType("text/plain"); FileItemIterator iterator = upload.getItemIterator(req); while (iterator.hasNext()) { FileItemStream item = iterator.next(); InputStream stream = item.openStream(); if (item.isFormField()) { log.warning("Got a form field: " + item.getFieldName()); } else { log.warning("Got an uploaded file: " + item.getFieldName() + ", name = " + item.getName()); // You now have the filename (item.getName() and the // contents (which you can read from stream). Here we just // print them back out to the servlet output stream, but you // will probably want to do something more interesting (for // example, wrap them in a Blob and commit them to the // datastore). int len; byte[] buffer = new byte[8192]; while ((len = stream.read(buffer, 0, buffer.length)) != -1) { res.getOutputStream().write(buffer, 0, len); } } } } catch (Exception ex) { throw new ServletException(ex); } } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } } el caso es que simpre me da un error cuando envio el formulario con image folowing error : Error for /FileUpload java.lang.NoSuchMethodError: org.apache.commons.fileupload.servlet.ServletFileUpload.getItemIterator(Ljavax/ servlet/http/HttpServletRequest;)Lorg/apache/commons/fileupload/ FileItemIterator; at com.ubicacion.servlet.FileUpload.doPost(FileUpload.java:32) at javax.servlet.http.HttpServlet.service(HttpServlet.java:713) at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: 487) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1093) at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java: 97) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1084) at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java: 35) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1084) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java: 43) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1084) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: 360) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java: 216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java: 181) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java: 712) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: 405) at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java: 238) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java: 139) at org.mortbay.jetty.Server.handle(Server.java:313) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java: 506) at org.mortbay.jetty.HttpConnection $RequestHandler.headerComplete(HttpConnection.java:830) at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java: 76) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381) at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java: 135) at com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java: 235) at com.google.apphosting.base.RuntimePb$EvaluationRuntime $6.handleBlockingRequest(RuntimePb.java:5485) at com.google.apphosting.base.RuntimePb$EvaluationRuntime $6.handleBlockingRequest(RuntimePb.java:5483) at co
Re: [appengine-java] Problem whit upload form multipart
Do you have a different version of the jar in your lib directory to the one on your build path? On 17 Feb 2010, at 09:11, NIko Judo wrote: Hola he probado el codigo siguiente para recibir un formulario multipart en mi aplicacion : Test folowing code import org.apache.commons.fileupload.FileItemStream; import org.apache.commons.fileupload.FileItemIterator; import org.apache.commons.fileupload.servlet.ServletFileUpload; import java.io.InputStream; import java.io.IOException; import java.util.logging.Logger; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class FileUpload extends HttpServlet { private static final Logger log = Logger.getLogger(FileUpload.class.getName()); public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { try { ServletFileUpload upload = new ServletFileUpload(); res.setContentType("text/plain"); FileItemIterator iterator = upload.getItemIterator(req); while (iterator.hasNext()) { FileItemStream item = iterator.next(); InputStream stream = item.openStream(); if (item.isFormField()) { log.warning("Got a form field: " + item.getFieldName()); } else { log.warning("Got an uploaded file: " + item.getFieldName() + ", name = " + item.getName()); // You now have the filename (item.getName() and the // contents (which you can read from stream). Here we just // print them back out to the servlet output stream, but you // will probably want to do something more interesting (for // example, wrap them in a Blob and commit them to the // datastore). int len; byte[] buffer = new byte[8192]; while ((len = stream.read(buffer, 0, buffer.length)) != -1) { res.getOutputStream().write(buffer, 0, len); } } } } catch (Exception ex) { throw new ServletException(ex); } } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } } el caso es que simpre me da un error cuando envio el formulario con image folowing error : Error for /FileUpload java.lang.NoSuchMethodError: org .apache .commons.fileupload.servlet.ServletFileUpload.getItemIterator(Ljavax/ servlet/http/HttpServletRequest;)Lorg/apache/commons/fileupload/ FileItemIterator; at com.ubicacion.servlet.FileUpload.doPost(FileUpload.java:32) at javax.servlet.http.HttpServlet.service(HttpServlet.java:713) at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: 487) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1093) at com .google .apphosting .utils .servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java: 97) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1084) at com .google .apphosting .runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java: 35) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1084) at com .google .apphosting .utils .servlet .TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java: 43) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1084) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: 360) at org .mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java: 216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java: 181) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java: 712) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: 405) at com .google .apphosting .runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java: 238) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java: 139) at org.mortbay.jetty.Server.handle(Server.java:313) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java: 506) at org.mortbay.jetty.HttpConnection $RequestHandler.headerComplete(HttpConnection.java:830) at com .google .apphosting .runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java: 76) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381) at com .google .apphosting .runtime .jetty .JettyServletEngineAdapter .serviceRequest(JettyServletEngineAdapter.java: 135) at com .google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java: 235) at com.google.apphosting.base.RuntimePb$EvaluationRuntime $6.
Re: [appengine-java] Problem whit upload form multipart
maybe this will be helpful http://hapeblog.appspot.com/blog.shtml?id=2002 On Wed, Feb 17, 2010 at 1:01 PM, John Patterson wrote: > Do you have a different version of the jar in your lib directory to the one > on your build path? > > > On 17 Feb 2010, at 09:11, NIko Judo wrote: > > Hola he probado el codigo siguiente para recibir un formulario >> multipart en mi aplicacion : >> >> Test folowing code >> >> import org.apache.commons.fileupload.FileItemStream; >> import org.apache.commons.fileupload.FileItemIterator; >> import org.apache.commons.fileupload.servlet.ServletFileUpload; >> >> import java.io.InputStream; >> import java.io.IOException; >> import java.util.logging.Logger; >> >> import javax.servlet.ServletException; >> import javax.servlet.http.HttpServlet; >> import javax.servlet.http.HttpServletRequest; >> import javax.servlet.http.HttpServletResponse; >> >> public class FileUpload extends HttpServlet { >> private static final Logger log = >> Logger.getLogger(FileUpload.class.getName()); >> >> >> public void doPost(HttpServletRequest req, HttpServletResponse res) >> throws ServletException, IOException { >> try { >> ServletFileUpload upload = new ServletFileUpload(); >> res.setContentType("text/plain"); >> >> FileItemIterator iterator = upload.getItemIterator(req); >> while (iterator.hasNext()) { >> FileItemStream item = iterator.next(); >> InputStream stream = item.openStream(); >> >> if (item.isFormField()) { >> log.warning("Got a form field: " + item.getFieldName()); >> } else { >> log.warning("Got an uploaded file: " + item.getFieldName() + >> ", name = " + item.getName()); >> >> // You now have the filename (item.getName() and the >> // contents (which you can read from stream). Here we just >> // print them back out to the servlet output stream, but you >> // will probably want to do something more interesting (for >> // example, wrap them in a Blob and commit them to the >> // datastore). >> int len; >> byte[] buffer = new byte[8192]; >> while ((len = stream.read(buffer, 0, buffer.length)) != -1) >> { >> res.getOutputStream().write(buffer, 0, len); >> } >> } >> } >> } catch (Exception ex) { >> throw new ServletException(ex); >> } >> } >> >> >> @Override >> protected void doGet(HttpServletRequest request, >> HttpServletResponse response) >> throws ServletException, IOException { >> >> } >> >> >> >> } >> >> el caso es que simpre me da un error cuando envio el formulario con >> image >> >> folowing error : >> >> Error for /FileUpload >> java.lang.NoSuchMethodError: >> >> org.apache.commons.fileupload.servlet.ServletFileUpload.getItemIterator(Ljavax/ >> servlet/http/HttpServletRequest;)Lorg/apache/commons/fileupload/ >> FileItemIterator; >>at com.ubicacion.servlet.FileUpload.doPost(FileUpload.java:32) >>at javax.servlet.http.HttpServlet.service(HttpServlet.java:713) >>at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) >>at >> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: >> 487) >>at org.mortbay.jetty.servlet.ServletHandler >> $CachedChain.doFilter(ServletHandler.java:1093) >>at >> >> com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java: >> 97) >>at org.mortbay.jetty.servlet.ServletHandler >> $CachedChain.doFilter(ServletHandler.java:1084) >>at >> >> com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java: >> 35) >>at org.mortbay.jetty.servlet.ServletHandler >> $CachedChain.doFilter(ServletHandler.java:1084) >>at >> >> com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java: >> 43) >>at org.mortbay.jetty.servlet.ServletHandler >> $CachedChain.doFilter(ServletHandler.java:1084) >>at >> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: >> 360) >>at >> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java: >> 216) >>at >> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java: >> 181) >>at >> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java: >> 712) >>at >> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: >> 405) >>at >> >> com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java: >> 238) >>at >> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java: >> 139) >>at org.mortbay.jetty.Server.handle(Server.java:313) >>at >> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java: >> 506) >>at org.mortbay.jetty.HttpConnection >> $RequestHandler.headerComplete(HttpConnection.java:830) >>at >> >> com.google.apphosting.runtime.jetty.Rp