As far as I can remember, deployment of Java webapps on the internet has always been painful. Since the early days of the servlet spec, it's been almost impossible to find cheap and reliable hosting for Servlet/JSP applications.
Good news : those days might be over soon !
With the rise of the Cloud Computing movement, several platforms now exist where you can deploy Java webapps, with various backend services, and pricing models. One of them caught my eye a few months ago, the one from Google, called App Engine.
It's basically a JEE web container (to run your servlets) plus some back-end services for various stuff, from persistence to user management etc.
Rings a bell ?
Looking at the spec, and taking it out for a quick spin, it became immediately apparent that we could actually deploy Woko-based webapps there.
As GAE supports JPA, all we needed was to implement a dedicated ObjectStore backed by Google's JPA provider. And a Stripes interceptor that manages the lifecycle of the EntityManager, a replacement for the OSIV mechanism we already have for Hibernate.
Those were implemented in an hour or so : JPA is very similar to Hibernate for the client API, so writing the base components was really easy.
Then, a bit of fight with the maven pom and maven-gae-plugin. I had to configure a few things as usual, and eventually I had my Woko/GAE project ready. I could run it on my dev server :
> mvn gae:run
And even deploy in GAE :
> mvn gae:deploy
Nothing more to do : the webapp is pushed to Google's infrastructure, and ready to serve requests :
http://test.wokotestbabz.appspot.com/home
I could use the developer role (wdevel/wdevel) in order to create instances of a test POJO and browse them. Stripes, JPA persistence, everything seems to work just fine... Yikes !
Of course, there is room for improvement (full text search, Google user accounts, etc.) but overall it's very encouraging. Deploying Woko apps to GAE is definitly easy, and provides a really cool solution for hosting your apps on the internet at a very low cost (free for small apps), without sysadmin hassles, in an infrastructre that is supposed to scale.
Our next slogan will probably look like "Woko : POJOs in the Kloud !"
Everything is detailed here:
https://github.com/vankeisb/woko2/wiki/GoogleAppEngine
Enjoy,
Remi
PS : for those who have not followed recent developments, we have moved to GitHub for the next release (Woko 2).