http://code.google.com/appengine/kb/java.html#fileforms
On Wed, Dec 9, 2009 at 12:44 PM, Henry <[email protected]> wrote: > Hi Guys, > > Im trying to store and image with GWT to Google App engine, I'm using > the packages: > commons-codec-1.4.jar > commons-fileupload-1.2.1.jar > commons-io-1.4.jar > to get the widgets from the formPanel that I'm sending to the server > which contain the widgets FileUpload that has my image. > When I'm using this packages to recover the image and store it I've > the following error: > > java.lang.NoClassDefFoundError: java.rmi.server.UID is a restricted > class. Please see the Google App Engine developer's guide for more > details. > at > > com.google.apphosting.runtime.security.shared.stub.java.rmi.server.UID.<clinit> > (UID.java) > at org.apache.commons.fileupload.disk.DiskFileItem.<clinit> > (DiskFileItem.java:103) > at org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem > (DiskFileItemFactory.java:196) > at org.apache.commons.fileupload.FileUploadBase.parseRequest > (FileUploadBase.java:358) > at > org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest > (ServletFileUpload.java:126) > at com.handizo.server.service.FileUploadAnnouncementServlet.doPost > (FileUploadAnnouncementServlet.java:37) > 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.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:139) > at com.google.apphosting.runtime.JavaRuntime.handleRequest > (JavaRuntime.java:239) > at com.google.apphosting.base.RuntimePb$EvaluationRuntime > $6.handleBlockingRequest(RuntimePb.java:5235) > at com.google.apphosting.base.RuntimePb$EvaluationRuntime > $6.handleBlockingRequest(RuntimePb.java:5233) > 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:838) > 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:793) > at com.google.net.rpc.impl.Server.processRequest(Server.java:368) > 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: > 466) > at com.google.net.async.EventDispatcher.processNetworkEvents > (EventDispatcher.java:759) > 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:396) > at java.lang.Thread.run(Unknown Source) > > > This " java.rmi.server.UID" class is not in the jre class white list > of Google App Engine, this mean that I can't use these packages > because they need this class? > In that case how I can get the image from the GWT, concretely from a > PanelForm without using these classes?? > > This is my server code: > > @SuppressWarnings("unchecked") > protected void doPost(HttpServletRequest req, HttpServletResponse > resp) > throws ServletException, IOException { > > // Create a factory for disk-based file items and an upload > handler > DiskFileItemFactory factory = new DiskFileItemFactory(); > ServletFileUpload upload = new ServletFileUpload(factory); > > // Parse the request to retrieve the individual items > List<FileItem> items; > try { > items = upload.parseRequest(req); > } catch (FileUploadException e) { > throw new ServletException("File upload failed", e); > } > > // handle the individual items appropriately > for (FileItem fileItem : items) { > > } > > } > > Thanks in advance. > > -- > > 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 > [email protected]. > To unsubscribe from this group, send email to > [email protected]<google-appengine-java%[email protected]> > . > 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 [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
