I would search the Struts mailing list archives. I believe folks have figured out how to get Struts 2 working on GAE.

Matt

On Dec 25, 2009, at 8:44 AM, Sudhir N <sudhir_nima...@yahoo.com> wrote:

Today tried to deploy a hello world app on GAE and got following

java.lang.NoClassDefFoundError: javax.swing.tree.TreeNode 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 freemarker.core.TextBlock.isIgnorable(TextBlock.java:375)
at freemarker.core.TemplateElement.postParseCleanup (TemplateElement.java:240) at freemarker.core.MixedContent.postParseCleanup(MixedContent.java: 76)
        at freemarker.core.FMParser.Root(FMParser.java:2961)
        at freemarker.template.Template.(Template.java:149)
        at
 freemarker.cache.TemplateCache.loadTemplate(TemplateCache.java:448)
        at freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:361)
        at freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:235)
at freemarker.template.Configuration.getTemplate(Configuration.java: 487) at freemarker.core.Environment.getTemplateForInclusion (Environment.java:1465)
        at freemarker.core.Include.accept(Include.java:157)
        at freemarker.core.Environment.visit(Environment.java:210)
        at freemarker.core.MixedContent.accept(MixedContent.java:92)
        at freemarker.core.Environment.visit(Environment.java:210)
        at freemarker.core.Environment.process(Environment.java:190)
        at freemarker.template.Template.process(Template.java:237)
at freemarker.ext.servlet.FreemarkerServlet.process (FreemarkerServlet.java:452) at freemarker.ext.servlet.FreemarkerServlet.doGet (FreemarkerServlet.java:391)
        at
 javax.servlet.http.HttpServlet.service(HttpServlet.java:693)
        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 net.sourceforge.stripes.controller.StripesFilter.doFilter (StripesFilter.java:247) 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:70)
        at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:268)
        at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
at net.sourceforge.stripes.action.ForwardResolution.execute (ForwardResolution.java:110) at net.sourceforge.stripes.controller.DispatcherHelper$7.intercept (DispatcherHelper.java:508) at net.sourceforge.stripes.controller.ExecutionContext.proceed (ExecutionContext.java:158) at net.sourceforge.stripes.controller.HttpCacheInterceptor.intercept (HttpCacheInterceptor.java:99) at net.sourceforge.stripes.controller.ExecutionContext.proceed (ExecutionContext.java:155) at net.sourceforge.stripes.controller.BeforeAfterMethodInterceptor.intercept( BeforeAfterMethodInterceptor.java:113) at net.sourceforge.stripes.controller.ExecutionContext.proceed (ExecutionContext.java:155)
        at
net.sourceforge.stripes.controller.ExecutionContext.wrap (ExecutionContext.java:74) at net.sourceforge.stripes.controller.DispatcherHelper.executeResolution (DispatcherHelper.java:502) at net.sourceforge.stripes.controller.DispatcherServlet.executeResolution( DispatcherServlet.java:286) at net.sourceforge.stripes.controller.DispatcherServlet.service (DispatcherServlet.java:170)
        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 net.sourceforge.stripes.controller.StripesFilter.doFilter (StripesFilter.java:247) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter (ServletHandler.java:1084) at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter (ServeBlobFilter.java:51)
        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:121) 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:70) at org.mortbay.jetty.handler.HandlerWrapper.handle (HandlerWrapper.java:139) at com.google.appengine.tools.development.JettyContainerService $ApiProxyHandler.handle(JettyContainerService.java:352) 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)

A template engine has dependency on javax.swing !! what could be less surprising thn this.
BTW Freemarker is quite popular now days :)


http://solveme.wordpress.com/2009/12/25/freemarker-sucks-it-has-dependency-on-javax-swing/



Sudhir Nimavat
Senior software engineer.
Quick start global PVT LTD.
Baroda - 390007
Gujarat, India

Personally I'm always ready to learn, although I do not always like being taught



The INTERNET now has a personality. YOURS! See your Yahoo! Homepage.

Reply via email to