How to create a google app engine project doesn't work

7 views
Skip to first unread message

johnny

unread,
Dec 30, 2010, 12:52:16 PM12/30/10
to Conjure
Hello,

I followed your How to create a google app engine project.
When I start the server on my machine using dev_appserver.bat I got an
error:

java.lang.NoClassDefFoundError: java.io.FileOutputStream is a
restricted class. Please see the Google App Engine developer's guide
for more details. (development.clj:0)

Seems FileOutputStream is not on the whitelist. Is there a
workarround?

With regards

johnny

unread,
Jan 1, 2011, 12:58:41 PM1/1/11
to Conjure
Here is the full message log:


Compiler.java:5440 clojure.lang.Compiler.eval
Compiler.java:5857 clojure.lang.Compiler.load
RT.java:340 clojure.lang.RT.loadResourceScript
RT.java:331 clojure.lang.RT.loadResourceScript
RT.java:409 clojure.lang.RT.load
RT.java:381 clojure.lang.RT.load
core.clj:4905 clojure.core/load[fn]
core.clj:4904 clojure.core/load
RestFn.java:409 clojure.lang.RestFn.invoke
core.clj:4729 clojure.core/load-one
core.clj:4766 clojure.core/load-lib
RestFn.java:143 clojure.lang.RestFn.applyTo
core.clj:542 clojure.core/apply
core.clj:4800 clojure.core/load-libs
RestFn.java:138 clojure.lang.RestFn.applyTo
core.clj:542 clojure.core/apply
core.clj:4869 clojure.core/require
RestFn.java:409 clojure.lang.RestFn.invoke
environment.clj:41 conjure.core.config.environment/require-environment
server.clj:22 conjure.core.server.server/init-promise-fn
server.clj:42 conjure.core.server.server/init
server.clj:76 conjure.core.server.server/process-request
ring_adapter.clj:26 conjure.core.server.ring-adapter/call-server
ring_adapter.clj:36 conjure.core.server.ring-adapter/wrap-response-
time[fn]
stacktrace.clj:59 ring.middleware.stacktrace/wrap-stacktrace[fn]
ring_adapter.clj:50 conjure.core.server.ring-adapter/wrap-resource-
dir[fn]
ring_adapter.clj:60 conjure.core.server.ring-adapter/conjure
Var.java:365 clojure.lang.Var.invoke
servlet.clj:14 conjure.core.server.servlet/conjure-servlet
servlet.clj:117 ring.util.servlet/make-service-method[fn]
servlet.clj:18 conjure.core.server.servlet/-service
(Unknown Source) conjure.core.server.servlet.service
ServletHolder.java:511 org.mortbay.jetty.servlet.ServletHolder.handle
ServletHandler.java:1166 org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter
ServeBlobFilter.java:58
com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter
ServletHandler.java:1157 org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter
TransactionCleanupFilter.java:43
com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter
ServletHandler.java:1157 org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter
StaticFileFilter.java:122
com.google.appengine.tools.development.StaticFileFilter.doFilter
ServletHandler.java:1157 org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter
ServletHandler.java:388
org.mortbay.jetty.servlet.ServletHandler.handle
SecurityHandler.java:216
org.mortbay.jetty.security.SecurityHandler.handle
SessionHandler.java:182
org.mortbay.jetty.servlet.SessionHandler.handle
ContextHandler.java:765
org.mortbay.jetty.handler.ContextHandler.handle
WebAppContext.java:418 org.mortbay.jetty.webapp.WebAppContext.handle
DevAppEngineWebAppContext.java:70
com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle
HandlerWrapper.java:152
org.mortbay.jetty.handler.HandlerWrapper.handle
JettyContainerService.java:349
com.google.appengine.tools.development.JettyContainerService
$ApiProxyHandler.handle
HandlerWrapper.java:152
org.mortbay.jetty.handler.HandlerWrapper.handle
Server.java:326 org.mortbay.jetty.Server.handle
HttpConnection.java:542 org.mortbay.jetty.HttpConnection.handleRequest
HttpConnection.java:923 org.mortbay.jetty.HttpConnection
$RequestHandler.headerComplete
HttpParser.java:547 org.mortbay.jetty.HttpParser.parseNext
HttpParser.java:212 org.mortbay.jetty.HttpParser.parseAvailable
HttpConnection.java:404 org.mortbay.jetty.HttpConnection.handle
SelectChannelEndPoint.java:409
org.mortbay.io.nio.SelectChannelEndPoint.run
QueuedThreadPool.java:582 org.mortbay.thread.QueuedThreadPool
$PoolThread.run

Can anyone help here?

Matt Courtney

unread,
Jan 2, 2011, 9:10:58 AM1/2/11
to clojure...@googlegroups.com
The issue is the logging code in the config/environments/development.clj
file. Google app engine doesn't allow you to access the file system, but
the current logging code wants to write logging statements to the file
system.

You'll need to remove the code and replace it with the logging system in
Google App Engine. I've done it before, but apparently forgot to update
the wiki.

The easy solution is to set :use-logger? to false in your
config/environment.clj file.

-Matt Courtney

P.S. Sorry for the delay replying. The holidays are screwing with my
ability to support Conjure right now.

Reply all
Reply to author
Forward
0 new messages