GAE (google apps engine) Lift Eclipse Setup

35 views
Skip to first unread message

Andreas

unread,
Aug 27, 2009, 10:49:19 AM8/27/09
to Lift
Hi,

I have a working GAE Scala Eclipse setup based on:
http://penguinparens.blogspot.com/2009/04/further-steps-scalagwtapp-engineeclipse.html

How do I integrate the Lift framework from:
http://github.com/ymnk/liftweb/tree/master

thanks
Andreas

David Pollak

unread,
Aug 27, 2009, 11:23:48 AM8/27/09
to lif...@googlegroups.com

Not in direct answer to your question, but please use the main Lift distribution at http://github.com/dpp/liftweb/tree/master  No fork is officially supported and the latest fixes will be in the dpp/liftweb repository.
 

thanks
Andreas





--
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890
Follow me: http://twitter.com/dpp
Git some: http://github.com/dpp

Andreas

unread,
Aug 29, 2009, 3:29:56 PM8/29/09
to Lift
This is my current setup:
1) Eclipse 3.5 with plugins: Scala, GAE
2) create a new GAE project without GWT
3) add Scala Nature to project and copy scala-library.jar to /war/WEB-
INF/lib
4) add this to .classpath:
<classpathentry kind="var" path="M2_REPO/net/liftweb/lift-mapper/1.0/
lift-mapper-1.0.jar" sourcepath="M2_REPO/net/liftweb/lift-mapper/1.0/
lift-mapper-1.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/net/liftweb/lift-util/1.0/
lift-util-1.0.jar" sourcepath="M2_REPO/net/liftweb/lift-util/1.0/lift-
util-1.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/net/liftweb/lift-webkit/1.0/
lift-webkit-1.0.jar" sourcepath="M2_REPO/net/liftweb/lift-webkit/1.0/
lift-webkit-1.0-sources.jar"/>
5) define project properties Java Build Path->Libaries->Add Variable
M2_REPO to maven repository on Mac OS X: /Users/ahe/.m2/repository
(repository needs to be filled with liftweb by creating on project
with maven on command line)
6) copy lift-mapper-1.0.jar, lift-util-1.0.jar, lift-webkit-1.0.jar
to /war/WEB-INF/lib
7) remove existing files in /src and add from default liftweb
structure the folder bootstrap and demo
8) copy from webapp/ templates-hidden and index.html to /war
9) replace from war/WEB-INF/web.xml with webapp/WEB-INF/web.xml

10) start Debug As -> Web Application
2009-08-29 21:14:11.471 java[1289:10b] [Java CocoaComponent
compatibility mode]: Enabled
2009-08-29 21:14:11.474 java[1289:10b] [Java CocoaComponent
compatibility mode]: Setting timeout for SWT to 0.100000
The server is running at http://localhost:8080/

Page access in Browser (http://localhost:8080/) will throw this:
29.08.2009 19:14:23 com.google.apphosting.utils.jetty.JettyLogger warn
WARNUNG: Error for /favicon.ico
java.lang.ExceptionInInitializerError
at scala.actors.Actor$class.scheduler(Actor.scala:374)
at net.liftweb.http.SessionMaster$.scheduler(LiftSession.scala:118)
at scala.actors.Actor$class.start(Actor.scala:783)
at net.liftweb.http.SessionMaster$.start(LiftSession.scala:118)
at net.liftweb.http.SessionMaster$.<init>(LiftSession.scala:205)
at net.liftweb.http.SessionMaster$.<clinit>(LiftSession.scala)
at net.liftweb.http.LiftRules$.rewriteTable(LiftRules.scala:408)
at net.liftweb.http.LiftFilterTrait$$anonfun$doFilter$1.apply
(LiftServlet.scala:522)
at net.liftweb.http.LiftFilterTrait$$anonfun$doFilter$1.apply
(LiftServlet.scala:518)
at net.liftweb.http.RequestVarHandler$$anonfun$apply$3$$anonfun$apply
$4$$anonfun$apply$5$$anonfun$apply$6.apply(Vars.scala:197)
at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
at net.liftweb.http.RequestVarHandler$$anonfun$apply$3$$anonfun$apply
$4$$anonfun$apply$5.apply(Vars.scala:196)
at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
at net.liftweb.http.RequestVarHandler$$anonfun$apply$3$$anonfun$apply
$4.apply(Vars.scala:195)
at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
at net.liftweb.http.RequestVarHandler$$anonfun$apply$3.apply
(Vars.scala:194)
at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
at net.liftweb.http.RequestVarHandler$.apply(Vars.scala:193)
at net.liftweb.http.LiftFilterTrait$class.doFilter(LiftServlet.scala:
517)
at net.liftweb.http.LiftFilter.doFilter(LiftServlet.scala:536)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
(ServletHandler.java:1084)
at
com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter
(TransactionCleanupFilter.java:43)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
(ServletHandler.java:1084)
at com.google.appengine.tools.development.StaticFileFilter.doFilter
(StaticFileFilter.java:124)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
(ServletHandler.java:1084)
at org.mortbay.jetty.servlet.ServletHandler.handle
(ServletHandler.java:360)
at org.mortbay.jetty.security.SecurityHandler.handle
(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle
(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle
(ContextHandler.java:712)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
405)
at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle
(DevAppEngineWebAppContext.java:54)
at org.mortbay.jetty.handler.HandlerWrapper.handle
(HandlerWrapper.java:139)
at com.google.appengine.tools.development.JettyContainerService
$ApiProxyHandler.handle(JettyContainerService.java:313)
at org.mortbay.jetty.handler.HandlerWrapper.handle
(HandlerWrapper.java:139)
at org.mortbay.jetty.Server.handle(Server.java:313)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
506)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete
(HttpConnection.java:830)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
at org.mortbay.io.nio.SelectChannelEndPoint.run
(SelectChannelEndPoint.java:396)
at org.mortbay.thread.BoundedThreadPool$PoolThread.run
(BoundedThreadPool.java:442)
Caused by: java.security.AccessControlException: access denied
(java.lang.RuntimePermission modifyThreadGroup)
at java.security.AccessControlContext.checkPermission
(AccessControlContext.java:264)
at java.security.AccessController.checkPermission
(AccessController.java:427)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:
532)
at com.google.appengine.tools.development.DevAppServerFactory
$CustomSecurityManager.checkPermission(DevAppServerFactory.java:128)
at com.google.appengine.tools.development.DevAppServerFactory
$CustomSecurityManager.checkAccess(DevAppServerFactory.java:155)
at java.lang.ThreadGroup.checkAccess(ThreadGroup.java:288)
at java.lang.Thread.init(Thread.java:310)
at java.lang.Thread.<init>(Thread.java:358)
at scala.actors.FJTaskScheduler2.<init>(FJTaskScheduler2.scala:26)
at scala.actors.Scheduler$.<init>(Scheduler.scala:30)
at scala.actors.Scheduler$.<clinit>(Scheduler.scala)
... 42 more
29.08.2009 19:14:23 com.google.apphosting.utils.jetty.JettyLogger warn
WARNUNG: Nested in java.lang.ExceptionInInitializerError:
java.security.AccessControlException: access denied
(java.lang.RuntimePermission modifyThreadGroup)
at java.security.AccessControlContext.checkPermission
(AccessControlContext.java:264)
at java.security.AccessController.checkPermission
(AccessController.java:427)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:
532)
at com.google.appengine.tools.development.DevAppServerFactory
$CustomSecurityManager.checkPermission(DevAppServerFactory.java:128)
at com.google.appengine.tools.development.DevAppServerFactory
$CustomSecurityManager.checkAccess(DevAppServerFactory.java:155)
at java.lang.ThreadGroup.checkAccess(ThreadGroup.java:288)
at java.lang.Thread.init(Thread.java:310)
at java.lang.Thread.<init>(Thread.java:358)
at scala.actors.FJTaskScheduler2.<init>(FJTaskScheduler2.scala:26)
at scala.actors.Scheduler$.<init>(Scheduler.scala:30)
at scala.actors.Scheduler$.<clinit>(Scheduler.scala)
at scala.actors.Actor$class.scheduler(Actor.scala:374)
at net.liftweb.http.SessionMaster$.scheduler(LiftSession.scala:118)
at scala.actors.Actor$class.start(Actor.scala:783)
at net.liftweb.http.SessionMaster$.start(LiftSession.scala:118)
at net.liftweb.http.SessionMaster$.<init>(LiftSession.scala:205)
at net.liftweb.http.SessionMaster$.<clinit>(LiftSession.scala)
at net.liftweb.http.LiftRules$.rewriteTable(LiftRules.scala:408)
at net.liftweb.http.LiftFilterTrait$$anonfun$doFilter$1.apply
(LiftServlet.scala:522)
at net.liftweb.http.LiftFilterTrait$$anonfun$doFilter$1.apply
(LiftServlet.scala:518)
at net.liftweb.http.RequestVarHandler$$anonfun$apply$3$$anonfun$apply
$4$$anonfun$apply$5$$anonfun$apply$6.apply(Vars.scala:197)
at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
at net.liftweb.http.RequestVarHandler$$anonfun$apply$3$$anonfun$apply
$4$$anonfun$apply$5.apply(Vars.scala:196)
at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
at net.liftweb.http.RequestVarHandler$$anonfun$apply$3$$anonfun$apply
$4.apply(Vars.scala:195)
at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
at net.liftweb.http.RequestVarHandler$$anonfun$apply$3.apply
(Vars.scala:194)
at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
at net.liftweb.http.RequestVarHandler$.apply(Vars.scala:193)
at net.liftweb.http.LiftFilterTrait$class.doFilter(LiftServlet.scala:
517)
at net.liftweb.http.LiftFilter.doFilter(LiftServlet.scala:536)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
(ServletHandler.java:1084)
at
com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter
(TransactionCleanupFilter.java:43)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
(ServletHandler.java:1084)
at com.google.appengine.tools.development.StaticFileFilter.doFilter
(StaticFileFilter.java:124)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
(ServletHandler.java:1084)
at org.mortbay.jetty.servlet.ServletHandler.handle
(ServletHandler.java:360)
at org.mortbay.jetty.security.SecurityHandler.handle
(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle
(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle
(ContextHandler.java:712)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
405)
at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle
(DevAppEngineWebAppContext.java:54)
at org.mortbay.jetty.handler.HandlerWrapper.handle
(HandlerWrapper.java:139)
at com.google.appengine.tools.development.JettyContainerService
$ApiProxyHandler.handle(JettyContainerService.java:313)
at org.mortbay.jetty.handler.HandlerWrapper.handle
(HandlerWrapper.java:139)
at org.mortbay.jetty.Server.handle(Server.java:313)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
506)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete
(HttpConnection.java:830)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
at org.mortbay.io.nio.SelectChannelEndPoint.run
(SelectChannelEndPoint.java:396)
at org.mortbay.thread.BoundedThreadPool$PoolThread.run
(BoundedThreadPool.java:442)


On 27 Aug., 17:23, David Pollak <feeder.of.the.be...@gmail.com> wrote:
> On Thu, Aug 27, 2009 at 7:49 AM, Andreas <andreas.heissenber...@gmail.com>wrote:
>
>
>
> > Hi,
>
> > I have a working GAE Scala Eclipse setup based on:
>
> >http://penguinparens.blogspot.com/2009/04/further-steps-scalagwtapp-e...
>
> > How do I integrate the Lift framework from:
> >http://github.com/ymnk/liftweb/tree/master
>
> Not in direct answer to your question, but please use the main Lift
> distribution athttp://github.com/dpp/liftweb/tree/master No fork is
> officially supported and the latest fixes will be in the dpp/liftweb
> repository.
>
>
>
> > thanks
> > Andreas
>
> --
> Lift, the simply functional web frameworkhttp://liftweb.net
> Beginning Scalahttp://www.apress.com/book/view/1430219890

David Pollak

unread,
Aug 31, 2009, 1:18:38 PM8/31/09
to lif...@googlegroups.com
There are known issues with Lift 1.0 and GAE.

My understanding is that Lift 1.1-SNAPSHOT will work/may work on GAE.
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890

Andreas

unread,
Sep 1, 2009, 2:23:08 AM9/1/09
to Lift
How do I compile the lift snapshot from the git repository?
Is there a maven config or wiki entry?


On Aug 31, 7:18 pm, David Pollak <feeder.of.the.be...@gmail.com>
wrote:
> There are known issues with Lift 1.0 and GAE.
>
> My understanding is that Lift 1.1-SNAPSHOT will work/may work on GAE.
>
> On Sat, Aug 29, 2009 at 12:29 PM, Andreas
> <andreas.heissenber...@gmail.com>wrote:
> > The server is running athttp://localhost:8080/
> ...
>
> read more »

Timothy Perrett

unread,
Sep 1, 2009, 4:31:54 AM9/1/09
to lif...@googlegroups.com
It's on the github wiki:

http://wiki.github.com/dpp/liftweb

Cheers, Tim

Sent from my iPhone

On 1 Sep 2009, at 07:23, Andreas <andreas.he...@gmail.com>
wrote:

finelinestudio

unread,
Sep 3, 2009, 8:14:31 AM9/3/09
to Lift
Hi, I followed this:

http://jpkutner.blogspot.com/2009/08/scala-and-lift-on-google-app-engine.html

then copied all the liftweb 1.1 and associated JARs into a GAE web
project WEB-INF/lib, and added them to the classpath, and the app
source files into src, (appropriately packaged). I found it all seemed
to launch and run fine but the scala code editor doesn't recognise the
imports to _root_.net.liftweb.... or give any code assistance to
things imported that way. Hover over reads "value net is not a member
of package <root>" The Java source editor has no problem with that
import (e.g. import net.liftweb.util.*;), and the Scala source editor
is fine with import _root_.scala.... its only the .net.liftweb it
can't seem to "find".

Any ideas?


On Sep 1, 6:31 pm, Timothy Perrett <timo...@getintheloop.eu> wrote:
> It's on the github wiki:
>
> http://wiki.github.com/dpp/liftweb
>
> Cheers, Tim
>
> Sent from my iPhone
>
> On 1 Sep 2009, at 07:23, Andreas <andreas.heissenber...@gmail.com>  
> wrote:
>
>
>
>
>
> > How do I compile the lift snapshot from the git repository?
> > Is there a maven config or wiki entry?
>
> > On Aug 31, 7:18 pm, David Pollak <feeder.of.the.be...@gmail.com>
> > wrote:
> >> There are known issues with Lift 1.0 and GAE.
>
> >> My understanding is that Lift 1.1-SNAPSHOT will work/may work on GAE.
>
> >> On Sat, Aug 29, 2009 at 12:29 PM, Andreas
> >> <andreas.heissenber...@gmail.com>wrote:
>
> >>> This is my current setup:
> >>> 1)Eclipse3.5 with plugins: Scala, GAE
> ...
>
> read more »

finelinestudio

unread,
Sep 3, 2009, 8:16:04 AM9/3/09
to Lift
test .. can't see previous post

On Sep 1, 6:31 pm, Timothy Perrett <timo...@getintheloop.eu> wrote:
> It's on the github wiki:
>
> http://wiki.github.com/dpp/liftweb
>
> Cheers, Tim
>
> Sent from my iPhone
>
> On 1 Sep 2009, at 07:23, Andreas <andreas.heissenber...@gmail.com>  
> wrote:
>
>
>
>
>
> > How do I compile the lift snapshot from the git repository?
> > Is there a maven config or wiki entry?
>
> > On Aug 31, 7:18 pm, David Pollak <feeder.of.the.be...@gmail.com>
> > wrote:
> >> There are known issues with Lift 1.0 and GAE.
>
> >> My understanding is that Lift 1.1-SNAPSHOT will work/may work on GAE.
>
> >> On Sat, Aug 29, 2009 at 12:29 PM, Andreas
> >> <andreas.heissenber...@gmail.com>wrote:
>
> >>> This is my current setup:
> >>> 1)Eclipse3.5 with plugins: Scala, GAE
> ...
>
> read more »

TylerWeir

unread,
Sep 3, 2009, 8:19:46 AM9/3/09
to Lift
> test .. can't see previous post

New members are moderated.

finelinestudio

unread,
Sep 3, 2009, 6:36:17 PM9/3/09
to Lift
Thanks Tyler, thought it might be something like that.

I can see that a more "conventional" approach of running mvn: eclipse
on the standard lift example project creates an eclipse project
without the problems mentioned above - so that gives me something to
go on to find what's up with my GAE project.

alexda...@googlemail.com

unread,
Sep 19, 2009, 8:59:22 AM9/19/09
to Lift
I found a fix for the errors on the importation at http://www.kleinfelter.com/node/82

You can run:
mvn -Declipse.workspace=K:\code eclipse:add-maven-repo

replacing K:\Code with your eclipse workspace. It sets elipse up to
search maven for references or somesuch.
Reply all
Reply to author
Forward
0 new messages