You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@click.apache.org by Mykhaylo Kotsur <mi...@gmail.com> on 2010/02/02 21:14:19 UTC
Failed to start 2.1.0 RC1 on Google AppEngine
Hi!
I failed to run Apache Click on Google appengine. When starting GAE
appserver I get:
runserver:
[java] java.lang.NoClassDefFoundError: java.io.FileOutputStream is a
restricted class. Please see the Google App Engine developer's guide for
more details.
[java] at
com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51)
[java] at
org.apache.click.util.ClickUtils.deployFile(ClickUtils.java:1242)
[java] at
org.apache.click.util.ClickUtils.deployFiles(ClickUtils.java:1305)
[java] at
org.apache.click.service.XmlConfigService.deployFiles(XmlConfigService.java:1129)
[java] at
org.apache.click.service.XmlConfigService.onInit(XmlConfigService.java:229)
[java] at
org.apache.click.ClickServlet.initConfigService(ClickServlet.java:1587)
[java] at org.apache.click.ClickServlet.init(ClickServlet.java:183)
[java] at
javax.servlet.GenericServlet.init(GenericServlet.java:215)
[java] at
org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
[java] at
org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
[java] at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
[java] at
org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
[java] at
org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
[java] at
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
[java] at
org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
[java] at
org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
[java] at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
[java] at
org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
[java] at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
[java] at
org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
[java] at org.mortbay.jetty.Server.doStart(Server.java:217)
[java] at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
[java] at
com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:188)
[java] at
com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:120)
[java] at
com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:217)
[java] at
com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:162)
[java] at
com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
[java] at
com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
[java] at
com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
[java] Feb 2, 2010 7:31:44 PM
com.google.appengine.tools.development.ApiProxyLocalImpl log
[java] SEVERE: [1265139104791000] javax.servlet.ServletContext log:
ClickServlet: error while initializing Click servlet; throwing
javax.servlet.UnavailableException
[java] java.lang.NoClassDefFoundError: java.io.FileOutputStream is a
restricted class. Please see the Google App Engine developer's guide for
more details.
[java] at
com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51)
[java] at
org.apache.click.util.ClickUtils.deployFile(ClickUtils.java:1242)
[java] at
org.apache.click.util.ClickUtils.deployFiles(ClickUtils.java:1305)
[java] at
org.apache.click.service.XmlConfigService.deployFiles(XmlConfigService.java:1129)
[java] at
org.apache.click.service.XmlConfigService.onInit(XmlConfigService.java:229)
[java] at
org.apache.click.ClickServlet.initConfigService(ClickServlet.java:1587)
[java] at org.apache.click.ClickServlet.init(ClickServlet.java:183)
[java] at
javax.servlet.GenericServlet.init(GenericServlet.java:215)
[java] at
org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
[java] at
org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
[java] at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
[java] at
org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
[java] at
org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
[java] at
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
[java] at
org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
[java] at
org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
[java] at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
[java] at
org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
[java] at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
[java] at
org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
[java] at org.mortbay.jetty.Server.doStart(Server.java:217)
[java] at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
[java] at
com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:188)
[java] at
com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:120)
[java] at
com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:217)
[java] at
com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:162)
[java] at
com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
[java] at
com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
[java] at
com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
[java]
[java] Feb 2, 2010 7:31:44 PM
com.google.apphosting.utils.jetty.JettyLogger warn
[java] WARNING: failed ClickServlet
[java] javax.servlet.ServletException:
javax.servlet.UnavailableException: java.lang.NoClassDefFoundError:
java.io.FileOutputStream is a restricted class. Please see the Google App
Engine developer's guide for more details.
[java] at
org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:437)
[java] at
org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
[java] at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
[java] at
org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
[java] at
org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
[java] at
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
[java] at
org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
[java] at
org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
[java] at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
[java] at
org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
[java] at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
[java] at
org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
[java] at org.mortbay.jetty.Server.doStart(Server.java:217)
[java] at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
[java] at
com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:188)
[java] at
com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:120)
[java] at
com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:217)
[java] at
com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:162)
[java] at
com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
[java] at
com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
[java] at
com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
[java] Caused by: javax.servlet.UnavailableException:
java.lang.NoClassDefFoundError: java.io.FileOutputStream is a restricted
class. Please see the Google App Engine developer's guide for more details.
[java] at org.apache.click.ClickServlet.init(ClickServlet.java:205)
[java] at
javax.servlet.GenericServlet.init(GenericServlet.java:215)
[java] at
org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
[java] ... 20 more
[java] Feb 2, 2010 7:31:44 PM
com.google.apphosting.utils.jetty.JettyLogger warn
[java] WARNING: Nested in javax.servlet.ServletException:
javax.servlet.UnavailableException: java.lang.NoClassDefFoundError:
java.io.FileOutputStream is a restricted class. Please see the Google App
Engine developer's guide for more details.:
[java] javax.servlet.UnavailableException:
java.lang.NoClassDefFoundError: java.io.FileOutputStream is a restricted
class. Please see the Google App Engine developer's guide for more details.
[java] at org.apache.click.ClickServlet.init(ClickServlet.java:205)
[java] at
javax.servlet.GenericServlet.init(GenericServlet.java:215)
[java] at
org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
[java] at
org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
[java] at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
[java] at
org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
[java] at
org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
[java] at
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
[java] at
org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
[java] at
org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
[java] at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
[java] at
org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
[java] at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
[java] at
org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
[java] at org.mortbay.jetty.Server.doStart(Server.java:217)
[java] at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
[java] at
com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:188)
[java] at
com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:120)
[java] at
com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:217)
[java] at
com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:162)
[java] at
com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
[java] at
com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
[java] at
com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
[java] Feb 2, 2010 7:31:44 PM
com.google.apphosting.utils.jetty.JettyLogger warn
[java] WARNING: Failed startup of context
com.google.apphosting.utils.jetty.DevAppEngineWebAppContext@ce2187
{/,/home/mkotsur/IdeaProjects/rssgrep/war}
[java] javax.servlet.ServletException:
javax.servlet.UnavailableException: java.lang.NoClassDefFoundError:
java.io.FileOutputStream is a restricted class. Please see the Google App
Engine developer's guide for more details.
[java] at
org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:437)
[java] at
org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
[java] at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
[java] at
org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
[java] at
org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
[java] at
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
[java] at
org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
[java] at
org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
[java] at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
[java] at
org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
[java] at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
[java] at
org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
[java] at org.mortbay.jetty.Server.doStart(Server.java:217)
[java] at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
[java] at
com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:188)
[java] at
com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:120)
[java] at
com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:217)
[java] at
com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:162)
[java] at
com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
[java] at
com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
[java] at
com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
[java] Caused by: javax.servlet.UnavailableException:
java.lang.NoClassDefFoundError: java.io.FileOutputStream is a restricted
class. Please see the Google App Engine developer's guide for more details.
[java] at org.apache.click.ClickServlet.init(ClickServlet.java:205)
[java] at
javax.servlet.GenericServlet.init(GenericServlet.java:215)
[java] at
org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
[java] ... 20 more
[java] Feb 2, 2010 7:31:44 PM
com.google.apphosting.utils.jetty.JettyLogger warn
[java] WARNING: Nested in javax.servlet.ServletException:
javax.servlet.UnavailableException: java.lang.NoClassDefFoundError:
java.io.FileOutputStream is a restricted class. Please see the Google App
Engine developer's guide for more details.:
[java] javax.servlet.UnavailableException:
java.lang.NoClassDefFoundError: java.io.FileOutputStream is a restricted
class. Please see the Google App Engine developer's guide for more details.
[java] at org.apache.click.ClickServlet.init(ClickServlet.java:205)
[java] at
javax.servlet.GenericServlet.init(GenericServlet.java:215)
[java] at
org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
[java] at
org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
[java] at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
[java] at
org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
[java] at
org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
[java] at
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
[java] at
org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
[java] at
org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
[java] at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
[java] at
org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
[java] at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
[java] at
org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
[java] at org.mortbay.jetty.Server.doStart(Server.java:217)
[java] at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
[java] at
com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:188)
[java] at
com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:120)
[java] at
com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:217)
[java] at
com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:162)
[java] at
com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
[java] at
com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
[java] at
com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
[java] The server is running at http://localhost:8080/
Part of my web.xml:
<servlet>
<servlet-name>ClickServlet</servlet-name>
<servlet-class>org.apache.click.ClickServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
Version of click: 2.1.0 RC1
Thanks in advance.
Re: Failed to start 2.1.0 RC1 on Google AppEngine
Posted by "Adrian A." <a....@gmail.com>.
> Links seems to be broken :-(
> And is there any manual how to build click jar from sources?
Click is in a migration process right now: from Apache Incubator to a
TLP project.
(this was announced on the developer list)
This migration might take a while so it's possible that many links won't
work as expected.
You can find the sources of Click here:
[1] http://svn.apache.org/repos/asf/click/trunk/click/
(they were moved today to the URL above from the old one)
And the build instructions are still in the "developer's guide":
[2] http://incubator.apache.org/click/docs/developer-guide/building.html
As soon as the site will be migrated too, all site URLs will have
http://click.apache.org/*
instead of the actual
http://incubator.apache.org/click/*
since Click is no longer an Incubator project.
The entire documentation is also available in the sources (in the
'documentation' directory), so if you checkout from the URL [1] you will
have it offline too.
Adrian.
Re: Failed to start 2.1.0 RC1 on Google AppEngine
Posted by Mykhaylo Kotsur <mi...@gmail.com>.
Links seems to be broken :-(
And is there any manual how to build click jar from sources?
Mykhaylo
2010/2/2 Bob Schellink <sa...@gmail.com>
> Hi Mykhaylo,
>
> Indeed, RC1 doesn't work on GAE, but the current trunk does. There are some
> new classes to make Click work on GAE. See this package:
>
>
> http://svn.apache.org/viewvc/incubator/click/trunk/click/extras/src/org/apache/click/extras/gae/
>
> More details can be found in the JavaDoc of the following class:
>
>
> http://svn.apache.org/viewvc/incubator/click/trunk/click/extras/src/org/apache/click/extras/gae/GoogleAppEngineListener.java?view=markup
>
> Hope this helps.
>
> kind regards
>
> bob
>
>
> On 3/02/2010 07:14 AM, Mykhaylo Kotsur wrote:
>
>> Hi!
>>
>> I failed to run Apache Click on Google appengine. When starting GAE
>> appserver I get:
>>
>> runserver:
>> [java] java.lang.NoClassDefFoundError: java.io.FileOutputStream is
>> a restricted class. Please see the Google App Engine developer's guide
>> for more details.
>> [java] at
>>
>> com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51)
>> [java] at
>> org.apache.click.util.ClickUtils.deployFile(ClickUtils.java:1242)
>> [java] at
>> org.apache.click.util.ClickUtils.deployFiles(ClickUtils.java:1305)
>> [java] at
>>
>> org.apache.click.service.XmlConfigService.deployFiles(XmlConfigService.java:1129)
>> [java] at
>>
>> org.apache.click.service.XmlConfigService.onInit(XmlConfigService.java:229)
>> [java] at
>> org.apache.click.ClickServlet.initConfigService(ClickServlet.java:1587)
>> [java] at
>> org.apache.click.ClickServlet.init(ClickServlet.java:183)
>> [java] at
>> javax.servlet.GenericServlet.init(GenericServlet.java:215)
>> [java] at
>>
>> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
>> [java] at
>> org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
>> [java] at
>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
>> [java] at
>>
>> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
>> [java] at
>> org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
>> [java] at
>>
>> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
>> [java] at
>> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
>> [java] at
>> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
>> [java] at
>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
>> [java] at
>> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
>> [java] at
>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
>> [java] at
>> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
>> [java] at org.mortbay.jetty.Server.doStart(Server.java:217)
>> [java] at
>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
>> [java] at
>>
>> com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:188)
>> [java] at
>>
>> com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:120)
>> [java] at
>>
>> com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:217)
>> [java] at
>>
>> com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:162)
>> [java] at
>>
>> com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
>> [java] at
>>
>> com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
>> [java] at
>>
>> com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
>> [java] Feb 2, 2010 7:31:44 PM
>> com.google.appengine.tools.development.ApiProxyLocalImpl log
>> [java] SEVERE: [1265139104791000] javax.servlet.ServletContext
>> log: ClickServlet: error while initializing Click servlet; throwing
>> javax.servlet.UnavailableException
>> [java] java.lang.NoClassDefFoundError: java.io.FileOutputStream is
>> a restricted class. Please see the Google App Engine developer's guide
>> for more details.
>> [java] at
>>
>> com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51)
>> [java] at
>> org.apache.click.util.ClickUtils.deployFile(ClickUtils.java:1242)
>> [java] at
>> org.apache.click.util.ClickUtils.deployFiles(ClickUtils.java:1305)
>> [java] at
>>
>> org.apache.click.service.XmlConfigService.deployFiles(XmlConfigService.java:1129)
>> [java] at
>>
>> org.apache.click.service.XmlConfigService.onInit(XmlConfigService.java:229)
>> [java] at
>> org.apache.click.ClickServlet.initConfigService(ClickServlet.java:1587)
>> [java] at
>> org.apache.click.ClickServlet.init(ClickServlet.java:183)
>> [java] at
>> javax.servlet.GenericServlet.init(GenericServlet.java:215)
>> [java] at
>>
>> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
>> [java] at
>> org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
>> [java] at
>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
>> [java] at
>>
>> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
>> [java] at
>> org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
>> [java] at
>>
>> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
>> [java] at
>> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
>> [java] at
>> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
>> [java] at
>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
>> [java] at
>> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
>> [java] at
>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
>> [java] at
>> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
>> [java] at org.mortbay.jetty.Server.doStart(Server.java:217)
>> [java] at
>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
>> [java] at
>>
>> com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:188)
>> [java] at
>>
>> com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:120)
>> [java] at
>>
>> com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:217)
>> [java] at
>>
>> com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:162)
>> [java] at
>>
>> com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
>> [java] at
>>
>> com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
>> [java] at
>>
>> com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
>> [java]
>> [java] Feb 2, 2010 7:31:44 PM
>> com.google.apphosting.utils.jetty.JettyLogger warn
>> [java] WARNING: failed ClickServlet
>> [java] javax.servlet.ServletException:
>> javax.servlet.UnavailableException: java.lang.NoClassDefFoundError:
>> java.io.FileOutputStream is a restricted class. Please see the Google
>> App Engine developer's guide for more details.
>> [java] at
>>
>> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:437)
>> [java] at
>> org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
>> [java] at
>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
>> [java] at
>>
>> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
>> [java] at
>> org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
>> [java] at
>>
>> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
>> [java] at
>> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
>> [java] at
>> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
>> [java] at
>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
>> [java] at
>> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
>> [java] at
>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
>> [java] at
>> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
>> [java] at org.mortbay.jetty.Server.doStart(Server.java:217)
>> [java] at
>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
>> [java] at
>>
>> com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:188)
>> [java] at
>>
>> com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:120)
>> [java] at
>>
>> com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:217)
>> [java] at
>>
>> com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:162)
>> [java] at
>>
>> com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
>> [java] at
>>
>> com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
>> [java] at
>>
>> com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
>> [java] Caused by: javax.servlet.UnavailableException:
>> java.lang.NoClassDefFoundError: java.io.FileOutputStream is a restricted
>> class. Please see the Google App Engine developer's guide for more
>> details.
>> [java] at
>> org.apache.click.ClickServlet.init(ClickServlet.java:205)
>> [java] at
>> javax.servlet.GenericServlet.init(GenericServlet.java:215)
>> [java] at
>>
>> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
>> [java] ... 20 more
>> [java] Feb 2, 2010 7:31:44 PM
>> com.google.apphosting.utils.jetty.JettyLogger warn
>> [java] WARNING: Nested in javax.servlet.ServletException:
>> javax.servlet.UnavailableException: java.lang.NoClassDefFoundError:
>> java.io.FileOutputStream is a restricted class. Please see the Google
>> App Engine developer's guide for more details.:
>> [java] javax.servlet.UnavailableException:
>> java.lang.NoClassDefFoundError: java.io.FileOutputStream is a restricted
>> class. Please see the Google App Engine developer's guide for more
>> details.
>> [java] at
>> org.apache.click.ClickServlet.init(ClickServlet.java:205)
>> [java] at
>> javax.servlet.GenericServlet.init(GenericServlet.java:215)
>> [java] at
>>
>> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
>> [java] at
>> org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
>> [java] at
>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
>> [java] at
>>
>> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
>> [java] at
>> org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
>> [java] at
>>
>> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
>> [java] at
>> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
>> [java] at
>> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
>> [java] at
>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
>> [java] at
>> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
>> [java] at
>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
>> [java] at
>> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
>> [java] at org.mortbay.jetty.Server.doStart(Server.java:217)
>> [java] at
>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
>> [java] at
>>
>> com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:188)
>> [java] at
>>
>> com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:120)
>> [java] at
>>
>> com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:217)
>> [java] at
>>
>> com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:162)
>> [java] at
>>
>> com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
>> [java] at
>>
>> com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
>> [java] at
>>
>> com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
>> [java] Feb 2, 2010 7:31:44 PM
>> com.google.apphosting.utils.jetty.JettyLogger warn
>> [java] WARNING: Failed startup of context
>> com.google.apphosting.utils.jetty.DevAppEngineWebAppContext@ce2187
>> {/,/home/mkotsur/IdeaProjects/rssgrep/war}
>> [java] javax.servlet.ServletException:
>> javax.servlet.UnavailableException: java.lang.NoClassDefFoundError:
>> java.io.FileOutputStream is a restricted class. Please see the Google
>> App Engine developer's guide for more details.
>> [java] at
>>
>> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:437)
>> [java] at
>> org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
>> [java] at
>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
>> [java] at
>>
>> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
>> [java] at
>> org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
>> [java] at
>>
>> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
>> [java] at
>> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
>> [java] at
>> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
>> [java] at
>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
>> [java] at
>> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
>> [java] at
>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
>> [java] at
>> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
>> [java] at org.mortbay.jetty.Server.doStart(Server.java:217)
>> [java] at
>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
>> [java] at
>>
>> com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:188)
>> [java] at
>>
>> com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:120)
>> [java] at
>>
>> com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:217)
>> [java] at
>>
>> com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:162)
>> [java] at
>>
>> com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
>> [java] at
>>
>> com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
>> [java] at
>>
>> com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
>> [java] Caused by: javax.servlet.UnavailableException:
>> java.lang.NoClassDefFoundError: java.io.FileOutputStream is a restricted
>> class. Please see the Google App Engine developer's guide for more
>> details.
>> [java] at
>> org.apache.click.ClickServlet.init(ClickServlet.java:205)
>> [java] at
>> javax.servlet.GenericServlet.init(GenericServlet.java:215)
>> [java] at
>>
>> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
>> [java] ... 20 more
>> [java] Feb 2, 2010 7:31:44 PM
>> com.google.apphosting.utils.jetty.JettyLogger warn
>> [java] WARNING: Nested in javax.servlet.ServletException:
>> javax.servlet.UnavailableException: java.lang.NoClassDefFoundError:
>> java.io.FileOutputStream is a restricted class. Please see the Google
>> App Engine developer's guide for more details.:
>> [java] javax.servlet.UnavailableException:
>> java.lang.NoClassDefFoundError: java.io.FileOutputStream is a restricted
>> class. Please see the Google App Engine developer's guide for more
>> details.
>> [java] at
>> org.apache.click.ClickServlet.init(ClickServlet.java:205)
>> [java] at
>> javax.servlet.GenericServlet.init(GenericServlet.java:215)
>> [java] at
>>
>> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
>> [java] at
>> org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
>> [java] at
>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
>> [java] at
>>
>> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
>> [java] at
>> org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
>> [java] at
>>
>> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
>> [java] at
>> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
>> [java] at
>> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
>> [java] at
>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
>> [java] at
>> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
>> [java] at
>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
>> [java] at
>> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
>> [java] at org.mortbay.jetty.Server.doStart(Server.java:217)
>> [java] at
>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
>> [java] at
>>
>> com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:188)
>> [java] at
>>
>> com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:120)
>> [java] at
>>
>> com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:217)
>> [java] at
>>
>> com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:162)
>> [java] at
>>
>> com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
>> [java] at
>>
>> com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
>> [java] at
>>
>> com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
>> [java] The server is running at http://localhost:8080/
>>
>> Part of my web.xml:
>>
>> <servlet>
>> <servlet-name>ClickServlet</servlet-name>
>> <servlet-class>org.apache.click.ClickServlet</servlet-class>
>> <load-on-startup>0</load-on-startup>
>> </servlet>
>>
>> Version of click: 2.1.0 RC1
>>
>> Thanks in advance.
>>
>>
>
Re: Failed to start 2.1.0 RC1 on Google AppEngine
Posted by Bob Schellink <sa...@gmail.com>.
Hi Mykhaylo,
Indeed, RC1 doesn't work on GAE, but the current trunk does. There are some new classes to make
Click work on GAE. See this package:
http://svn.apache.org/viewvc/incubator/click/trunk/click/extras/src/org/apache/click/extras/gae/
More details can be found in the JavaDoc of the following class:
http://svn.apache.org/viewvc/incubator/click/trunk/click/extras/src/org/apache/click/extras/gae/GoogleAppEngineListener.java?view=markup
Hope this helps.
kind regards
bob
On 3/02/2010 07:14 AM, Mykhaylo Kotsur wrote:
> Hi!
>
> I failed to run Apache Click on Google appengine. When starting GAE
> appserver I get:
>
> runserver:
> [java] java.lang.NoClassDefFoundError: java.io.FileOutputStream is
> a restricted class. Please see the Google App Engine developer's guide
> for more details.
> [java] at
> com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51)
> [java] at
> org.apache.click.util.ClickUtils.deployFile(ClickUtils.java:1242)
> [java] at
> org.apache.click.util.ClickUtils.deployFiles(ClickUtils.java:1305)
> [java] at
> org.apache.click.service.XmlConfigService.deployFiles(XmlConfigService.java:1129)
> [java] at
> org.apache.click.service.XmlConfigService.onInit(XmlConfigService.java:229)
> [java] at
> org.apache.click.ClickServlet.initConfigService(ClickServlet.java:1587)
> [java] at
> org.apache.click.ClickServlet.init(ClickServlet.java:183)
> [java] at
> javax.servlet.GenericServlet.init(GenericServlet.java:215)
> [java] at
> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
> [java] at
> org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
> [java] at
> org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
> [java] at
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
> [java] at
> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
> [java] at
> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> [java] at org.mortbay.jetty.Server.doStart(Server.java:217)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:188)
> [java] at
> com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:120)
> [java] at
> com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:217)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:162)
> [java] at
> com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
> [java] Feb 2, 2010 7:31:44 PM
> com.google.appengine.tools.development.ApiProxyLocalImpl log
> [java] SEVERE: [1265139104791000] javax.servlet.ServletContext
> log: ClickServlet: error while initializing Click servlet; throwing
> javax.servlet.UnavailableException
> [java] java.lang.NoClassDefFoundError: java.io.FileOutputStream is
> a restricted class. Please see the Google App Engine developer's guide
> for more details.
> [java] at
> com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51)
> [java] at
> org.apache.click.util.ClickUtils.deployFile(ClickUtils.java:1242)
> [java] at
> org.apache.click.util.ClickUtils.deployFiles(ClickUtils.java:1305)
> [java] at
> org.apache.click.service.XmlConfigService.deployFiles(XmlConfigService.java:1129)
> [java] at
> org.apache.click.service.XmlConfigService.onInit(XmlConfigService.java:229)
> [java] at
> org.apache.click.ClickServlet.initConfigService(ClickServlet.java:1587)
> [java] at
> org.apache.click.ClickServlet.init(ClickServlet.java:183)
> [java] at
> javax.servlet.GenericServlet.init(GenericServlet.java:215)
> [java] at
> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
> [java] at
> org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
> [java] at
> org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
> [java] at
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
> [java] at
> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
> [java] at
> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> [java] at org.mortbay.jetty.Server.doStart(Server.java:217)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:188)
> [java] at
> com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:120)
> [java] at
> com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:217)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:162)
> [java] at
> com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
> [java]
> [java] Feb 2, 2010 7:31:44 PM
> com.google.apphosting.utils.jetty.JettyLogger warn
> [java] WARNING: failed ClickServlet
> [java] javax.servlet.ServletException:
> javax.servlet.UnavailableException: java.lang.NoClassDefFoundError:
> java.io.FileOutputStream is a restricted class. Please see the Google
> App Engine developer's guide for more details.
> [java] at
> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:437)
> [java] at
> org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
> [java] at
> org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
> [java] at
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
> [java] at
> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
> [java] at
> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> [java] at org.mortbay.jetty.Server.doStart(Server.java:217)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:188)
> [java] at
> com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:120)
> [java] at
> com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:217)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:162)
> [java] at
> com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
> [java] Caused by: javax.servlet.UnavailableException:
> java.lang.NoClassDefFoundError: java.io.FileOutputStream is a restricted
> class. Please see the Google App Engine developer's guide for more details.
> [java] at
> org.apache.click.ClickServlet.init(ClickServlet.java:205)
> [java] at
> javax.servlet.GenericServlet.init(GenericServlet.java:215)
> [java] at
> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
> [java] ... 20 more
> [java] Feb 2, 2010 7:31:44 PM
> com.google.apphosting.utils.jetty.JettyLogger warn
> [java] WARNING: Nested in javax.servlet.ServletException:
> javax.servlet.UnavailableException: java.lang.NoClassDefFoundError:
> java.io.FileOutputStream is a restricted class. Please see the Google
> App Engine developer's guide for more details.:
> [java] javax.servlet.UnavailableException:
> java.lang.NoClassDefFoundError: java.io.FileOutputStream is a restricted
> class. Please see the Google App Engine developer's guide for more details.
> [java] at
> org.apache.click.ClickServlet.init(ClickServlet.java:205)
> [java] at
> javax.servlet.GenericServlet.init(GenericServlet.java:215)
> [java] at
> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
> [java] at
> org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
> [java] at
> org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
> [java] at
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
> [java] at
> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
> [java] at
> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> [java] at org.mortbay.jetty.Server.doStart(Server.java:217)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:188)
> [java] at
> com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:120)
> [java] at
> com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:217)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:162)
> [java] at
> com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
> [java] Feb 2, 2010 7:31:44 PM
> com.google.apphosting.utils.jetty.JettyLogger warn
> [java] WARNING: Failed startup of context
> com.google.apphosting.utils.jetty.DevAppEngineWebAppContext@ce2187{/,/home/mkotsur/IdeaProjects/rssgrep/war}
> [java] javax.servlet.ServletException:
> javax.servlet.UnavailableException: java.lang.NoClassDefFoundError:
> java.io.FileOutputStream is a restricted class. Please see the Google
> App Engine developer's guide for more details.
> [java] at
> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:437)
> [java] at
> org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
> [java] at
> org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
> [java] at
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
> [java] at
> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
> [java] at
> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> [java] at org.mortbay.jetty.Server.doStart(Server.java:217)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:188)
> [java] at
> com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:120)
> [java] at
> com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:217)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:162)
> [java] at
> com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
> [java] Caused by: javax.servlet.UnavailableException:
> java.lang.NoClassDefFoundError: java.io.FileOutputStream is a restricted
> class. Please see the Google App Engine developer's guide for more details.
> [java] at
> org.apache.click.ClickServlet.init(ClickServlet.java:205)
> [java] at
> javax.servlet.GenericServlet.init(GenericServlet.java:215)
> [java] at
> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
> [java] ... 20 more
> [java] Feb 2, 2010 7:31:44 PM
> com.google.apphosting.utils.jetty.JettyLogger warn
> [java] WARNING: Nested in javax.servlet.ServletException:
> javax.servlet.UnavailableException: java.lang.NoClassDefFoundError:
> java.io.FileOutputStream is a restricted class. Please see the Google
> App Engine developer's guide for more details.:
> [java] javax.servlet.UnavailableException:
> java.lang.NoClassDefFoundError: java.io.FileOutputStream is a restricted
> class. Please see the Google App Engine developer's guide for more details.
> [java] at
> org.apache.click.ClickServlet.init(ClickServlet.java:205)
> [java] at
> javax.servlet.GenericServlet.init(GenericServlet.java:215)
> [java] at
> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
> [java] at
> org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
> [java] at
> org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
> [java] at
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
> [java] at
> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
> [java] at
> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> [java] at org.mortbay.jetty.Server.doStart(Server.java:217)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:188)
> [java] at
> com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:120)
> [java] at
> com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:217)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:162)
> [java] at
> com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
> [java] The server is running at http://localhost:8080/
>
> Part of my web.xml:
>
> <servlet>
> <servlet-name>ClickServlet</servlet-name>
> <servlet-class>org.apache.click.ClickServlet</servlet-class>
> <load-on-startup>0</load-on-startup>
> </servlet>
>
> Version of click: 2.1.0 RC1
>
> Thanks in advance.
>
Re: Failed to start 2.1.0 RC1 on Google AppEngine
Posted by Mykhaylo Kotsur <mi...@gmail.com>.
I see, but AFAIK Apache Click supposed to be working on GAE after some
hacks... So, I'm looking for workaround.
2010/2/2 Mike W <mi...@latigosystems.com>
> There are a number of classes not supported by Google App Engine.
>
>
>
> http://code.google.com/appengine/docs/java/jrewhitelist.html
> Also from the FAQ: Why can't I write to this file?
>
> Writing to local files is not supported in App Engine due to the
> distributed nature of your application. Instead, data which must be
> persisted should be stored in the distributed datastore<http://code.google.com/appengine/docs/java/datastore/overview.html>.
> For more information see the documentation on the runtime sandbox<http://code.google.com/appengine/docs/java/runtime.html#The_Sandbox>
> .
>
>
>
>
> On February 2, 2010 at 8:14 PM Mykhaylo Kotsur <mi...@gmail.com> wrote:
>
> > Hi!
> >
> > I failed to run Apache Click on Google appengine. When starting GAE
> > appserver I get:
> >
> > runserver:
> > [java] java.lang.NoClassDefFoundError: java.io.FileOutputStream is a
> > restricted class. Please see the Google App Engine developer's guide for
> > more details.
> > [java] at
> >
> com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51)
> > [java] at
> > org.apache.click.util.ClickUtils.deployFile(ClickUtils.java:1242)
> > [java] at
> > org.apache.click.util.ClickUtils.deployFiles(ClickUtils.java:1305)
> > [java] at
> >
> org.apache.click.service.XmlConfigService.deployFiles(XmlConfigService.java:1129)
> > [java] at
> >
> org.apache.click.service.XmlConfigService.onInit(XmlConfigService.java:229)
> > [java] at
> > org.apache.click.ClickServlet.initConfigService(ClickServlet.java:1587)
> > [java] at
> org.apache.click.ClickServlet.init(ClickServlet.java:183)
> > [java] at
> > javax.servlet.GenericServlet.init(GenericServlet.java:215)
> > [java] at
> >
> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
> > [java] at
> > org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
> > [java] at
> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> > [java] at
> >
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
> > [java] at
> > org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
> > [java] at
> >
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
> > [java] at
> > org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
> > [java] at
> > org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
> > [java] at
> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> > [java] at
> > org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> > [java] at
> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> > [java] at
> > org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> > [java] at org.mortbay.jetty.Server.doStart(Server.java:217)
> > [java] at
> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> > [java] at
> >
> com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:188)
> > [java] at
> >
> com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:120)
> > [java] at
> >
> com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:217)
> > [java] at
> >
> com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:162)
> > [java] at
> >
> com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
> > [java] at
> >
> com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
> > [java] at
> >
> com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
> > [java] Feb 2, 2010 7:31:44 PM
> > com.google.appengine.tools.development.ApiProxyLocalImpl log
> > [java] SEVERE: [1265139104791000] javax.servlet.ServletContext log:
> > ClickServlet: error while initializing Click servlet; throwing
> > javax.servlet.UnavailableException
> > [java] java.lang.NoClassDefFoundError: java.io.FileOutputStream is a
> > restricted class. Please see the Google App Engine developer's guide for
> > more details.
> > [java] at
> >
> com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51)
> > [java] at
> > org.apache.click.util.ClickUtils.deployFile(ClickUtils.java:1242)
> > [java] at
> > org.apache.click.util.ClickUtils.deployFiles(ClickUtils.java:1305)
> > [java] at
> >
> org.apache.click.service.XmlConfigService.deployFiles(XmlConfigService.java:1129)
> > [java] at
> >
> org.apache.click.service.XmlConfigService.onInit(XmlConfigService.java:229)
> > [java] at
> > org.apache.click.ClickServlet.initConfigService(ClickServlet.java:1587)
> > [java] at
> org.apache.click.ClickServlet.init(ClickServlet.java:183)
> > [java] at
> > javax.servlet.GenericServlet.init(GenericServlet.java:215)
> > [java] at
> >
> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
> > [java] at
> > org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
> > [java] at
> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> > [java] at
> >
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
> > [java] at
> > org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
> > [java] at
> >
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
> > [java] at
> > org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
> > [java] at
> > org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
> > [java] at
> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> > [java] at
> > org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> > [java] at
> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> > [java] at
> > org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> > [java] at org.mortbay.jetty.Server.doStart(Server.java:217)
> > [java] at
> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> > [java] at
> >
> com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:188)
> > [java] at
> >
> com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:120)
> > [java] at
> >
> com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:217)
> > [java] at
> >
> com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:162)
> > [java] at
> >
> com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
> > [java] at
> >
> com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
> > [java] at
> >
> com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
> > [java]
> > [java] Feb 2, 2010 7:31:44 PM
> > com.google.apphosting.utils.jetty.JettyLogger warn
> > [java] WARNING: failed ClickServlet
> > [java] javax.servlet.ServletException:
> > javax.servlet.UnavailableException: java.lang.NoClassDefFoundError:
> > java.io.FileOutputStream is a restricted class. Please see the Google
> App
> > Engine developer's guide for more details.
> > [java] at
> >
> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:437)
> > [java] at
> > org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
> > [java] at
> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> > [java] at
> >
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
> > [java] at
> > org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
> > [java] at
> >
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
> > [java] at
> > org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
> > [java] at
> > org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
> > [java] at
> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> > [java] at
> > org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> > [java] at
> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> > [java] at
> > org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> > [java] at org.mortbay.jetty.Server.doStart(Server.java:217)
> > [java] at
> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> > [java] at
> >
> com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:188)
> > [java] at
> >
> com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:120)
> > [java] at
> >
> com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:217)
> > [java] at
> >
> com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:162)
> > [java] at
> >
> com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
> > [java] at
> >
> com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
> > [java] at
> >
> com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
> > [java] Caused by: javax.servlet.UnavailableException:
> > java.lang.NoClassDefFoundError: java.io.FileOutputStream is a restricted
> > class. Please see the Google App Engine developer's guide for more
> details.
> > [java] at
> org.apache.click.ClickServlet.init(ClickServlet.java:205)
> > [java] at
> > javax.servlet.GenericServlet.init(GenericServlet.java:215)
> > [java] at
> >
> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
> > [java] ... 20 more
> > [java] Feb 2, 2010 7:31:44 PM
> > com.google.apphosting.utils.jetty.JettyLogger warn
> > [java] WARNING: Nested in javax.servlet.ServletException:
> > javax.servlet.UnavailableException: java.lang.NoClassDefFoundError:
> > java.io.FileOutputStream is a restricted class. Please see the Google
> App
> > Engine developer's guide for more details.:
> > [java] javax.servlet.UnavailableException:
> > java.lang.NoClassDefFoundError: java.io.FileOutputStream is a restricted
> > class. Please see the Google App Engine developer's guide for more
> details.
> > [java] at
> org.apache.click.ClickServlet.init(ClickServlet.java:205)
> > [java] at
> > javax.servlet.GenericServlet.init(GenericServlet.java:215)
> > [java] at
> >
> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
> > [java] at
> > org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
> > [java] at
> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> > [java] at
> >
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
> > [java] at
> > org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
> > [java] at
> >
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
> > [java] at
> > org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
> > [java] at
> > org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
> > [java] at
> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> > [java] at
> > org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> > [java] at
> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> > [java] at
> > org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> > [java] at org.mortbay.jetty.Server.doStart(Server.java:217)
> > [java] at
> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> > [java] at
> >
> com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:188)
> > [java] at
> >
> com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:120)
> > [java] at
> >
> com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:217)
> > [java] at
> >
> com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:162)
> > [java] at
> >
> com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
> > [java] at
> >
> com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
> > [java] at
> >
> com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
> > [java] Feb 2, 2010 7:31:44 PM
> > com.google.apphosting.utils.jetty.JettyLogger warn
> > [java] WARNING: Failed startup of context
> > com.google.apphosting.utils.jetty.DevAppEngineWebAppContext@ce2187
> > {/,/home/mkotsur/IdeaProjects/rssgrep/war}
> > [java] javax.servlet.ServletException:
> > javax.servlet.UnavailableException: java.lang.NoClassDefFoundError:
> > java.io.FileOutputStream is a restricted class. Please see the Google
> App
> > Engine developer's guide for more details.
> > [java] at
> >
> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:437)
> > [java] at
> > org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
> > [java] at
> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> > [java] at
> >
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
> > [java] at
> > org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
> > [java] at
> >
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
> > [java] at
> > org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
> > [java] at
> > org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
> > [java] at
> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> > [java] at
> > org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> > [java] at
> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> > [java] at
> > org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> > [java] at org.mortbay.jetty.Server.doStart(Server.java:217)
> > [java] at
> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> > [java] at
> >
> com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:188)
> > [java] at
> >
> com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:120)
> > [java] at
> >
> com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:217)
> > [java] at
> >
> com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:162)
> > [java] at
> >
> com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
> > [java] at
> >
> com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
> > [java] at
> >
> com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
> > [java] Caused by: javax.servlet.UnavailableException:
> > java.lang.NoClassDefFoundError: java.io.FileOutputStream is a restricted
> > class. Please see the Google App Engine developer's guide for more
> details.
> > [java] at
> org.apache.click.ClickServlet.init(ClickServlet.java:205)
> > [java] at
> > javax.servlet.GenericServlet.init(GenericServlet.java:215)
> > [java] at
> >
> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
> > [java] ... 20 more
> > [java] Feb 2, 2010 7:31:44 PM
> > com.google.apphosting.utils.jetty.JettyLogger warn
> > [java] WARNING: Nested in javax.servlet.ServletException:
> > javax.servlet.UnavailableException: java.lang.NoClassDefFoundError:
> > java.io.FileOutputStream is a restricted class. Please see the Google
> App
> > Engine developer's guide for more details.:
> > [java] javax.servlet.UnavailableException:
> > java.lang.NoClassDefFoundError: java.io.FileOutputStream is a restricted
> > class. Please see the Google App Engine developer's guide for more
> details.
> > [java] at
> org.apache.click.ClickServlet.init(ClickServlet.java:205)
> > [java] at
> > javax.servlet.GenericServlet.init(GenericServlet.java:215)
> > [java] at
> >
> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
> > [java] at
> > org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
> > [java] at
> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> > [java] at
> >
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
> > [java] at
> > org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
> > [java] at
> >
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
> > [java] at
> > org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
> > [java] at
> > org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
> > [java] at
> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> > [java] at
> > org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> > [java] at
> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> > [java] at
> > org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> > [java] at org.mortbay.jetty.Server.doStart(Server.java:217)
> > [java] at
> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> > [java] at
> >
> com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:188)
> > [java] at
> >
> com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:120)
> > [java] at
> >
> com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:217)
> > [java] at
> >
> com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:162)
> > [java] at
> >
> com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
> > [java] at
> >
> com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
> > [java] at
> >
> com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
> > [java] The server is running at http://localhost:8080/
> >
> > Part of my web.xml:
> >
> > <servlet>
> > <servlet-name>ClickServlet</servlet-name>
> > <servlet-class>org.apache.click.ClickServlet</servlet-class>
> > <load-on-startup>0</load-on-startup>
> > </servlet>
> >
> > Version of click: 2.1.0 RC1
> >
> > Thanks in advance.
>
Re: Failed to start 2.1.0 RC1 on Google AppEngine
Posted by Mike W <mi...@latigosystems.com>.
There are a number of classes not supported by Google App Engine.
http://code.google.com/appengine/docs/java/jrewhitelist.html
Also from the FAQ:
Why can't I write to this file?
Writing to local files is not supported in App Engine due to the distributed
nature of your application. Instead, data which must be persisted should be
stored in the distributed datastore
[http://code.google.com/appengine/docs/java/datastore/overview.html] . For more
information see the documentation on the runtime sandbox
[http://code.google.com/appengine/docs/java/runtime.html#The_Sandbox] .
On February 2, 2010 at 8:14 PM Mykhaylo Kotsur <mi...@gmail.com> wrote:
> Hi!
>
> I failed to run Apache Click on Google appengine. When starting GAE
> appserver I get:
>
> runserver:
> [java] java.lang.NoClassDefFoundError: java.io.FileOutputStream is a
> restricted class. Please see the Google App Engine developer's guide for
> more details.
> [java] at
> com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.ja
> va:51)
> [java] at
> org.apache.click.util.ClickUtils.deployFile(ClickUtils.java:1242)
> [java] at
> org.apache.click.util.ClickUtils.deployFiles(ClickUtils.java:1305)
> [java] at
> org.apache.click.service.XmlConfigService.deployFiles(XmlConfigService.java:11
> 29)
> [java] at
> org.apache.click.service.XmlConfigService.onInit(XmlConfigService.java:229)
> [java] at
> org.apache.click.ClickServlet.initConfigService(ClickServlet.java:1587)
> [java] at org.apache.click.ClickServlet.init(ClickServlet.java:183)
> [java] at
> javax.servlet.GenericServlet.init(GenericServlet.java:215)
> [java] at
> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
> [java] at
> org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
> [java] at
> org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
> [java] at
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
> [java] at
> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
> [java] at
> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> [java] at org.mortbay.jetty.Server.doStart(Server.java:217)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> com.google.appengine.tools.development.JettyContainerService.startContainer(Je
> ttyContainerService.java:188)
> [java] at
> com.google.appengine.tools.development.AbstractContainerService.startup(Abstra
> ctContainerService.java:120)
> [java] at
> com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl
> .java:217)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevA
> ppServerMain.java:162)
> [java] at
> com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMai
> n.java:113)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.
> java:89)
> [java] Feb 2, 2010 7:31:44 PM
> com.google.appengine.tools.development.ApiProxyLocalImpl log
> [java] SEVERE: [1265139104791000] javax.servlet.ServletContext log:
> ClickServlet: error while initializing Click servlet; throwing
> javax.servlet.UnavailableException
> [java] java.lang.NoClassDefFoundError: java.io.FileOutputStream is a
> restricted class. Please see the Google App Engine developer's guide for
> more details.
> [java] at
> com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.ja
> va:51)
> [java] at
> org.apache.click.util.ClickUtils.deployFile(ClickUtils.java:1242)
> [java] at
> org.apache.click.util.ClickUtils.deployFiles(ClickUtils.java:1305)
> [java] at
> org.apache.click.service.XmlConfigService.deployFiles(XmlConfigService.java:11
> 29)
> [java] at
> org.apache.click.service.XmlConfigService.onInit(XmlConfigService.java:229)
> [java] at
> org.apache.click.ClickServlet.initConfigService(ClickServlet.java:1587)
> [java] at org.apache.click.ClickServlet.init(ClickServlet.java:183)
> [java] at
> javax.servlet.GenericServlet.init(GenericServlet.java:215)
> [java] at
> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
> [java] at
> org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
> [java] at
> org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
> [java] at
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
> [java] at
> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
> [java] at
> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> [java] at org.mortbay.jetty.Server.doStart(Server.java:217)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> com.google.appengine.tools.development.JettyContainerService.startContainer(Je
> ttyContainerService.java:188)
> [java] at
> com.google.appengine.tools.development.AbstractContainerService.startup(Abstra
> ctContainerService.java:120)
> [java] at
> com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl
> .java:217)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevA
> ppServerMain.java:162)
> [java] at
> com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMai
> n.java:113)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.
> java:89)
> [java]
> [java] Feb 2, 2010 7:31:44 PM
> com.google.apphosting.utils.jetty.JettyLogger warn
> [java] WARNING: failed ClickServlet
> [java] javax.servlet.ServletException:
> javax.servlet.UnavailableException: java.lang.NoClassDefFoundError:
> java.io.FileOutputStream is a restricted class. Please see the Google App
> Engine developer's guide for more details.
> [java] at
> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:437)
> [java] at
> org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
> [java] at
> org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
> [java] at
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
> [java] at
> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
> [java] at
> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> [java] at org.mortbay.jetty.Server.doStart(Server.java:217)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> com.google.appengine.tools.development.JettyContainerService.startContainer(Je
> ttyContainerService.java:188)
> [java] at
> com.google.appengine.tools.development.AbstractContainerService.startup(Abstra
> ctContainerService.java:120)
> [java] at
> com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl
> .java:217)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevA
> ppServerMain.java:162)
> [java] at
> com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMai
> n.java:113)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.
> java:89)
> [java] Caused by: javax.servlet.UnavailableException:
> java.lang.NoClassDefFoundError: java.io.FileOutputStream is a restricted
> class. Please see the Google App Engine developer's guide for more details.
> [java] at org.apache.click.ClickServlet.init(ClickServlet.java:205)
> [java] at
> javax.servlet.GenericServlet.init(GenericServlet.java:215)
> [java] at
> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
> [java] ... 20 more
> [java] Feb 2, 2010 7:31:44 PM
> com.google.apphosting.utils.jetty.JettyLogger warn
> [java] WARNING: Nested in javax.servlet.ServletException:
> javax.servlet.UnavailableException: java.lang.NoClassDefFoundError:
> java.io.FileOutputStream is a restricted class. Please see the Google App
> Engine developer's guide for more details.:
> [java] javax.servlet.UnavailableException:
> java.lang.NoClassDefFoundError: java.io.FileOutputStream is a restricted
> class. Please see the Google App Engine developer's guide for more details.
> [java] at org.apache.click.ClickServlet.init(ClickServlet.java:205)
> [java] at
> javax.servlet.GenericServlet.init(GenericServlet.java:215)
> [java] at
> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
> [java] at
> org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
> [java] at
> org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
> [java] at
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
> [java] at
> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
> [java] at
> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> [java] at org.mortbay.jetty.Server.doStart(Server.java:217)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> com.google.appengine.tools.development.JettyContainerService.startContainer(Je
> ttyContainerService.java:188)
> [java] at
> com.google.appengine.tools.development.AbstractContainerService.startup(Abstra
> ctContainerService.java:120)
> [java] at
> com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl
> .java:217)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevA
> ppServerMain.java:162)
> [java] at
> com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMai
> n.java:113)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.
> java:89)
> [java] Feb 2, 2010 7:31:44 PM
> com.google.apphosting.utils.jetty.JettyLogger warn
> [java] WARNING: Failed startup of context
> com.google.apphosting.utils.jetty.DevAppEngineWebAppContext@ce2187
> {/,/home/mkotsur/IdeaProjects/rssgrep/war}
> [java] javax.servlet.ServletException:
> javax.servlet.UnavailableException: java.lang.NoClassDefFoundError:
> java.io.FileOutputStream is a restricted class. Please see the Google App
> Engine developer's guide for more details.
> [java] at
> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:437)
> [java] at
> org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
> [java] at
> org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
> [java] at
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
> [java] at
> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
> [java] at
> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> [java] at org.mortbay.jetty.Server.doStart(Server.java:217)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> com.google.appengine.tools.development.JettyContainerService.startContainer(Je
> ttyContainerService.java:188)
> [java] at
> com.google.appengine.tools.development.AbstractContainerService.startup(Abstra
> ctContainerService.java:120)
> [java] at
> com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl
> .java:217)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevA
> ppServerMain.java:162)
> [java] at
> com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMai
> n.java:113)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.
> java:89)
> [java] Caused by: javax.servlet.UnavailableException:
> java.lang.NoClassDefFoundError: java.io.FileOutputStream is a restricted
> class. Please see the Google App Engine developer's guide for more details.
> [java] at org.apache.click.ClickServlet.init(ClickServlet.java:205)
> [java] at
> javax.servlet.GenericServlet.init(GenericServlet.java:215)
> [java] at
> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
> [java] ... 20 more
> [java] Feb 2, 2010 7:31:44 PM
> com.google.apphosting.utils.jetty.JettyLogger warn
> [java] WARNING: Nested in javax.servlet.ServletException:
> javax.servlet.UnavailableException: java.lang.NoClassDefFoundError:
> java.io.FileOutputStream is a restricted class. Please see the Google App
> Engine developer's guide for more details.:
> [java] javax.servlet.UnavailableException:
> java.lang.NoClassDefFoundError: java.io.FileOutputStream is a restricted
> class. Please see the Google App Engine developer's guide for more details.
> [java] at org.apache.click.ClickServlet.init(ClickServlet.java:205)
> [java] at
> javax.servlet.GenericServlet.init(GenericServlet.java:215)
> [java] at
> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
> [java] at
> org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
> [java] at
> org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
> [java] at
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
> [java] at
> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
> [java] at
> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> [java] at org.mortbay.jetty.Server.doStart(Server.java:217)
> [java] at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> [java] at
> com.google.appengine.tools.development.JettyContainerService.startContainer(Je
> ttyContainerService.java:188)
> [java] at
> com.google.appengine.tools.development.AbstractContainerService.startup(Abstra
> ctContainerService.java:120)
> [java] at
> com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl
> .java:217)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevA
> ppServerMain.java:162)
> [java] at
> com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMai
> n.java:113)
> [java] at
> com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.
> java:89)
> [java] The server is running at http://localhost:8080/
>
> Part of my web.xml:
>
> <servlet>
> <servlet-name>ClickServlet</servlet-name>
> <servlet-class>org.apache.click.ClickServlet</servlet-class>
> <load-on-startup>0</load-on-startup>
> </servlet>
>
> Version of click: 2.1.0 RC1
>
> Thanks in advance.