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.


Reply via email to