Fernando,
There's nothing specific about the generic tapestry form. If you look at
the stacktrace, the problem comes from Commons Fileupload trying to use a
temp file to store the file upload. There is a version of Commons Fileupload
that is GAE friendly, google it and you'll be able to get it working.
Cheers,
Alex K
On Mon, Apr 4, 2011 at 6:03 PM, Fernando Benjamin
fernandobenja...@gmail.com wrote:
Hi all,
I need some help on using tapestry's form component on GAE.
I am uploading a file a beaneditor with a tapestry form component.
The problem is that when the file gets uploaded to GAE, I get an exception.
This exception occurs because, tapestry wants to create the file for me.
Is there a way of avoiding this automatic creation of file after uploading
the form?
GAE does not allow to create files!
And I must use the tapestry component form :)
Thanks,
Fernando
--- EXCEPTION
---
jjava.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.appengine.tools.development.agent.runtime.Runtime.reject(
Runtime.java:51)
at org.apache.commons.fileupload.disk.DiskFileItem.clinit(
DiskFileItem.java:109)
at org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(
DiskFileItemFactory.java:199)
at
$FileItemFactory_12f226be4b1.createItem($FileItemFactory_12f226be4b1.java)
at org.apache.commons.fileupload.FileUploadBase.parseRequest(
FileUploadBase.java:361)
at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(
ServletFileUpload.java:126)
at
org.apache.tapestry5.upload.internal.services.MultipartDecoderImpl.parseRequest(
MultipartDecoderImpl.java:106)
at
org.apache.tapestry5.upload.internal.services.MultipartDecoderImpl.decode(
MultipartDecoderImpl.java:88)
at $MultipartDecoder_12f226be4b0.decode($MultipartDecoder_12f226be4b0.java)
at $MultipartDecoder_12f226be329.decode($MultipartDecoder_12f226be329.java)
at
org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(
MultipartServletRequestFilter.java:41)
at
$HttpServletRequestHandler_12f226be32e.service($HttpServletRequestHandler_12f226be32e.java)
at org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(
IgnoredPathsFilter.java:62)
at
$HttpServletRequestFilter_12f226be32b.service($HttpServletRequestFilter_12f226be32b.java)
at
$HttpServletRequestHandler_12f226be32e.service($HttpServletRequestHandler_12f226be32e.java)
at org.apache.tapestry5.services.TapestryModule$2.service(
TapestryModule.java:926)
at
$HttpServletRequestHandler_12f226be32e.service($HttpServletRequestHandler_12f226be32e.java)
at
$HttpServletRequestHandler_12f226be328.service($HttpServletRequestHandler_12f226be328.java)
at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:147)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(
ServletHandler.java:1157)
at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(
ServeBlobFilter.java:58)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(
ServletHandler.java:1157)
at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(
TransactionCleanupFilter.java:43)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(
ServletHandler.java:1157)
at com.google.appengine.tools.development.StaticFileFilter.doFilter(
StaticFileFilter.java:122)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(
ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
at org.mortbay.jetty.security.SecurityHandler.handle(
SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(
DevAppEngineWebAppContext.java:70)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at
com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(
JettyContainerService.java:351)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(
HttpConnection.java:938)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.io.nio.SelectChannelEndPoint.run(
SelectChannelEndPoint.java:409)
at