GAE Tapestry5 FORM

2011-04-04 Thread Fernando Benjamin
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 org.mortbay.thread.QueuedThreadPool$PoolThread.run(
QueuedThreadPool.java:582)

--



--- MY FORM
---


 t:form t:id=upload 

t:errors/

t:beaneditor t:id=product object=product /

br/br/

input type=file id=ga name=file/


br/br/

input t:type=submit t:id=button t:value=message:button-label
/



/t:form


Re: GAE Tapestry5 FORM

2011-04-04 Thread Alex Kotchnev
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