maybe this will be helpful http://hapeblog.appspot.com/blog.shtml?id=2002
On Wed, Feb 17, 2010 at 1:01 PM, John Patterson <jdpatter...@gmail.com>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.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 >> >> com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java: >> 24) >> at >> com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java: >> 363) >> at com.google.net.rpc.impl.Server$2.run(Server.java:837) >> at >> com.google.tracing.LocalTraceSpanRunnable.run(LocalTraceSpanRunnable.java: >> 56) >> at >> >> com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan(LocalTraceSpanBuilder.java: >> 536) >> at com.google.net.rpc.impl.Server.startRpc(Server.java:792) >> at com.google.net.rpc.impl.Server.processRequest(Server.java:367) >> at >> >> com.google.net.rpc.impl.ServerConnection.messageReceived(ServerConnection.java: >> 448) >> at >> com.google.net.rpc.impl.RpcConnection.parseMessages(RpcConnection.java: >> 319) >> at >> com.google.net.rpc.impl.RpcConnection.dataReceived(RpcConnection.java: >> 290) >> at com.google.net.async.Connection.handleReadEvent(Connection.java: >> 474) >> at >> >> com.google.net.async.EventDispatcher.processNetworkEvents(EventDispatcher.java: >> 774) >> at >> com.google.net.async.EventDispatcher.internalLoop(EventDispatcher.java: >> 205) >> at com.google.net.async.EventDispatcher.loop(EventDispatcher.java: >> 101) >> at >> com.google.net.rpc.RpcService.runUntilServerShutdown(RpcService.java: >> 251) >> at com.google.apphosting.runtime.JavaRuntime >> $RpcRunnable.run(JavaRuntime.java:394) >> at java.lang.Thread.run(Unknown Source) >> >> >> alguna idea? >> >> que version de commons-file-upload y commons-io usa appengine >> I use the version commons-file-upload-1.2.1 and commons-io-1.4 in my >> application >> >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Google App Engine for Java" group. >> To post to this group, send email to >> google-appengine-j...@googlegroups.com. >> To unsubscribe from this group, send email to >> google-appengine-java+unsubscr...@googlegroups.com<google-appengine-java%2bunsubscr...@googlegroups.com> >> . >> For more options, visit this group at >> http://groups.google.com/group/google-appengine-java?hl=en. >> >> > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine for Java" group. > To post to this group, send email to > google-appengine-j...@googlegroups.com. > To unsubscribe from this group, send email to > google-appengine-java+unsubscr...@googlegroups.com<google-appengine-java%2bunsubscr...@googlegroups.com> > . > For more options, visit this group at > http://groups.google.com/group/google-appengine-java?hl=en. > > -- dream or truth -- You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.