The issue of running the GAE local appserver was discussed on the list previously; and AFAIK the conclusion is that the local deployment doesn't work; however, when you deploy to GAE, the app works. Below is the stacktrace that comes up . Now, clearly there is a problem w/ the appengine sdk's dev_appserver; however, looking at the trace, I can't quite tell what is the issue - e.g. none of the classes in the stack trace are "restricted", could this be coming from using javassist ?
Anyway, I would like to file an issue w/ GAE; however, I have the feeling that just providing the stack trace wouldn't be very helpful. I looked at the Loop component source but nothing jumped at me about why this is happening. Also, the few reports of a "running T5 app on GAE" (e.g. http://github.com/bitiboy/t5ongae/tree/master) indeed runs on GAE, but I get the same exception when I run it with dev_appserver. I've tried running simple T5.0.18 apps with the AppEngine SDK (1.2.2) in various configurations (e.g. as a NetBeans project with all dependencies added in, as a Maven project). So, in summary, I have 2 questions: 1. Has anyone gotten the dev_appserver to work w/ a T 5.0.18 app ? Maybe I'm doing something wrong, is there some workaround ? 2. If there is no fix, what could be the cause of this exception (so that I can open up an issue)? ---------------- The stacktrace -------------------- java.lang.NoClassDefFoundError: org/apache/tapestry5/corelib/components/Loop$1 at org.apache.tapestry5.corelib.components.Loop.(Loop.java:42) at $Instantiator_122b2e31b44.newInstance($Instantiator_122b2e31b44.java) at org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.(InternalComponentResourcesImpl.java:85) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.(ComponentPageElementImpl.java:589) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.newChild(ComponentPageElementImpl.java:523) at org.apache.tapestry5.internal.services.PageElementFactoryImpl.newComponentElement(PageElementFactoryImpl.java:229) at $PageElementFactory_122b2e31b08.newComponentElement($PageElementFactory_122b2e31b08.java) at org.apache.tapestry5.internal.services.PageLoaderProcessor.startComponent(PageLoaderProcessor.java:683) at org.apache.tapestry5.internal.services.PageLoaderProcessor.loadTemplateForComponent(PageLoaderProcessor.java:499) at org.apache.tapestry5.internal.services.PageLoaderProcessor.workComponentQueue(PageLoaderProcessor.java:834) at org.apache.tapestry5.internal.services.PageLoaderProcessor.loadPage(PageLoaderProcessor.java:392) at org.apache.tapestry5.internal.services.PageLoaderImpl.loadPage(PageLoaderImpl.java:59) at $PageLoader_122b2e31b06.loadPage($PageLoader_122b2e31b06.java) at org.apache.tapestry5.internal.services.PagePoolCache.checkout(PagePoolCache.java:210) at org.apache.tapestry5.internal.services.PagePoolImpl.checkout(PagePoolImpl.java:99) at $PagePool_122b2e31b05.checkout($PagePool_122b2e31b05.java) at org.apache.tapestry5.internal.services.RequestPageCacheImpl.get(RequestPageCacheImpl.java:51) at $RequestPageCache_122b2e31b04.get($RequestPageCache_122b2e31b04.java) at $RequestPageCache_122b2e31afc.get($RequestPageCache_122b2e31afc.java) at org.apache.tapestry5.internal.services.DefaultRequestExceptionHandler.handleRequestException(DefaultRequestExceptionHandler.java:69) at $RequestExceptionHandler_122b2e31aea.handleRequestException($RequestExceptionHandler_122b2e31aea.java) at org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:42) at $RequestHandler_122b2e31aec.service($RequestHandler_122b2e31aec.java) at org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:621) at $RequestHandler_122b2e31aec.service($RequestHandler_122b2e31aec.java) at org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:611) at $RequestHandler_122b2e31aec.service($RequestHandler_122b2e31aec.java) at org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:85) at $RequestHandler_122b2e31aec.service($RequestHandler_122b2e31aec.java) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:93) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:84) at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:83) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:106) at $RequestHandler_122b2e31aec.service($RequestHandler_122b2e31aec.java) at $RequestHandler_122b2e31ae3.service($RequestHandler_122b2e31ae3.java) at org.apache.tapestry5.services.TapestryModule$16.service(TapestryModule.java:1007) at org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44) at $HttpServletRequestHandler_122b2e31ae4.service($HttpServletRequestHandler_122b2e31ae4.java) at org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) at $HttpServletRequestFilter_122b2e31ae2.service($HttpServletRequestFilter_122b2e31ae2.java) at $HttpServletRequestHandler_122b2e31ae4.service($HttpServletRequestHandler_122b2e31ae4.java) at $HttpServletRequestHandler_122b2e31ae0.service($HttpServletRequestHandler_122b2e31ae0.java) at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:179) 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 com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:124) 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.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:54) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139) at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:313) 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 org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396) at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442) Caused by: java.lang.ClassNotFoundException: caught an exception while obtaining a class file for org.apache.tapestry5.corelib.components.Loop$1 at javassist.Loader.findClass(Loader.java:359) at org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$PackageAwareLoader.findClass(ComponentInstantiatorSourceImpl.java:92) at javassist.Loader.loadClass(Loader.java:311) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) ... 65 more Caused by: javassist.NotFoundException: org.apache.tapestry5.corelib.components.Loop$1 at javassist.ClassPool.get(ClassPool.java:436) at org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl.onLoad(ComponentInstantiatorSourceImpl.java:193) at javassist.Loader.findClass(Loader.java:340) ... 69 more Caused by: java.lang.ClassNotFoundException: caught an exception while obtaining a class file for org.apache.tapestry5.corelib.components.Loop$1 at javassist.Loader.findClass(Loader.java:359) at org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$PackageAwareLoader.findClass(ComponentInstantiatorSourceImpl.java:92) at javassist.Loader.loadClass(Loader.java:311) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) at org.apache.tapestry5.corelib.components.Loop.(Loop.java:42) at $Instantiator_122b2e31b44.newInstance($Instantiator_122b2e31b44.java) at org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.(InternalComponentResourcesImpl.java:85) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.(ComponentPageElementImpl.java:589) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.newChild(ComponentPageElementImpl.java:523) at org.apache.tapestry5.internal.services.PageElementFactoryImpl.newComponentElement(PageElementFactoryImpl.java:229) at $PageElementFactory_122b2e31b08.newComponentElement($PageElementFactory_122b2e31b08.java) at org.apache.tapestry5.internal.services.PageLoaderProcessor.startComponent(PageLoaderProcessor.java:683) at org.apache.tapestry5.internal.services.PageLoaderProcessor.loadTemplateForComponent(PageLoaderProcessor.java:499) at org.apache.tapestry5.internal.services.PageLoaderProcessor.workComponentQueue(PageLoaderProcessor.java:834) at org.apache.tapestry5.internal.services.PageLoaderProcessor.loadPage(PageLoaderProcessor.java:392) at org.apache.tapestry5.internal.services.PageLoaderImpl.loadPage(PageLoaderImpl.java:59) at $PageLoader_122b2e31b06.loadPage($PageLoader_122b2e31b06.java) at org.apache.tapestry5.internal.services.PagePoolCache.checkout(PagePoolCache.java:210) at org.apache.tapestry5.internal.services.PagePoolImpl.checkout(PagePoolImpl.java:99) at $PagePool_122b2e31b05.checkout($PagePool_122b2e31b05.java) at org.apache.tapestry5.internal.services.RequestPageCacheImpl.get(RequestPageCacheImpl.java:51) at $RequestPageCache_122b2e31b04.get($RequestPageCache_122b2e31b04.java) at $RequestPageCache_122b2e31afc.get($RequestPageCache_122b2e31afc.java) at org.apache.tapestry5.internal.services.DefaultRequestExceptionHandler.handleRequestException(DefaultRequestExceptionHandler.java:69) at $RequestExceptionHandler_122b2e31aea.handleRequestException($RequestExceptionHandler_122b2e31aea.java) at org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:42) at $RequestHandler_122b2e31aec.service($RequestHandler_122b2e31aec.java) at org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:621) at $RequestHandler_122b2e31aec.service($RequestHandler_122b2e31aec.java) at org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:611) at $RequestHandler_122b2e31aec.service($RequestHandler_122b2e31aec.java) at org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:85) at $RequestHandler_122b2e31aec.service($RequestHandler_122b2e31aec.java) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:93) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:84) at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:83) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:106) at $RequestHandler_122b2e31aec.service($RequestHandler_122b2e31aec.java) at $RequestHandler_122b2e31ae3.service($RequestHandler_122b2e31ae3.java) at org.apache.tapestry5.services.TapestryModule$16.service(TapestryModule.java:1007) at org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44) at $HttpServletRequestHandler_122b2e31ae4.service($HttpServletRequestHandler_122b2e31ae4.java) at org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) at $HttpServletRequestFilter_122b2e31ae2.service($HttpServletRequestFilter_122b2e31ae2.java) at $HttpServletRequestHandler_122b2e31ae4.service($HttpServletRequestHandler_122b2e31ae4.java) at $HttpServletRequestHandler_122b2e31ae0.service($HttpServletRequestHandler_122b2e31ae0.java) at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:179) 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 com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:124) 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.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:54) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139) at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:313) 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 org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396) at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442) Caused by: javassist.NotFoundException: org.apache.tapestry5.corelib.components.Loop$1 at javassist.ClassPool.get(ClassPool.java:436) at org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl.onLoad(ComponentInstantiatorSourceImpl.java:193) at javassist.Loader.findClass(Loader.java:340) ... 69 more Caused by: javassist.NotFoundException: org.apache.tapestry5.corelib.components.Loop$1 at javassist.ClassPool.get(ClassPool.java:436) at org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl.onLoad(ComponentInstantiatorSourceImpl.java:193) at javassist.Loader.findClass(Loader.java:340) at org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$PackageAwareLoader.findClass(ComponentInstantiatorSourceImpl.java:92) at javassist.Loader.loadClass(Loader.java:311) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) at org.apache.tapestry5.corelib.components.Loop.(Loop.java:42) at $Instantiator_122b2e31b44.newInstance($Instantiator_122b2e31b44.java) at org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.(InternalComponentResourcesImpl.java:85) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.(ComponentPageElementImpl.java:589) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.newChild(ComponentPageElementImpl.java:523) at org.apache.tapestry5.internal.services.PageElementFactoryImpl.newComponentElement(PageElementFactoryImpl.java:229) at $PageElementFactory_122b2e31b08.newComponentElement($PageElementFactory_122b2e31b08.java) at org.apache.tapestry5.internal.services.PageLoaderProcessor.startComponent(PageLoaderProcessor.java:683) at org.apache.tapestry5.internal.services.PageLoaderProcessor.loadTemplateForComponent(PageLoaderProcessor.java:499) at org.apache.tapestry5.internal.services.PageLoaderProcessor.workComponentQueue(PageLoaderProcessor.java:834) at org.apache.tapestry5.internal.services.PageLoaderProcessor.loadPage(PageLoaderProcessor.java:392) at org.apache.tapestry5.internal.services.PageLoaderImpl.loadPage(PageLoaderImpl.java:59) at $PageLoader_122b2e31b06.loadPage($PageLoader_122b2e31b06.java) at org.apache.tapestry5.internal.services.PagePoolCache.checkout(PagePoolCache.java:210) at org.apache.tapestry5.internal.services.PagePoolImpl.checkout(PagePoolImpl.java:99) at $PagePool_122b2e31b05.checkout($PagePool_122b2e31b05.java) at org.apache.tapestry5.internal.services.RequestPageCacheImpl.get(RequestPageCacheImpl.java:51) at $RequestPageCache_122b2e31b04.get($RequestPageCache_122b2e31b04.java) at $RequestPageCache_122b2e31afc.get($RequestPageCache_122b2e31afc.java) at org.apache.tapestry5.internal.services.DefaultRequestExceptionHandler.handleRequestException(DefaultRequestExceptionHandler.java:69) at $RequestExceptionHandler_122b2e31aea.handleRequestException($RequestExceptionHandler_122b2e31aea.java) at org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:42) at $RequestHandler_122b2e31aec.service($RequestHandler_122b2e31aec.java) at org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:621) at $RequestHandler_122b2e31aec.service($RequestHandler_122b2e31aec.java) at org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:611) at $RequestHandler_122b2e31aec.service($RequestHandler_122b2e31aec.java) at org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:85) at $RequestHandler_122b2e31aec.service($RequestHandler_122b2e31aec.java) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:93) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:84) at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:83) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:106) at $RequestHandler_122b2e31aec.service($RequestHandler_122b2e31aec.java) at $RequestHandler_122b2e31ae3.service($RequestHandler_122b2e31ae3.java) at org.apache.tapestry5.services.TapestryModule$16.service(TapestryModule.java:1007) at org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44) at $HttpServletRequestHandler_122b2e31ae4.service($HttpServletRequestHandler_122b2e31ae4.java) at org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) at $HttpServletRequestFilter_122b2e31ae2.service($HttpServletRequestFilter_122b2e31ae2.java) at $HttpServletRequestHandler_122b2e31ae4.service($HttpServletRequestHandler_122b2e31ae4.java) at $HttpServletRequestHandler_122b2e31ae0.service($HttpServletRequestHandler_122b2e31ae0.java) at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:179) 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 com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:124) 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.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:54) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139) at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:313) 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 org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396) at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442) *Powered by Jetty:// <http://jetty.mortbay.org/>*