[appengine-java] Problem whit upload form multipart

2010-02-16 Thread NIko Judo
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

2010-02-16 Thread John Patterson
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

2010-02-19 Thread yjun hu
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