Gmail Calendar Documents Reader Web more »
Recently Visited Groups | Help | Sign in
Google Groups Home
Group info
Members: 3695
Group categories: Not categorized
More group info »
Recent pages and files
Will it play in App Engine    
For information on a particular framework, language, or library, please search for its name on this page. If the item you are interested is not listed, has incorrect information, or you have a fix for a reported issue, please add a comment to the page.

Java Enterprise Edition (Java EE) Technologies

Supported

While we do not support the entirety of the Java EE specification, many of its individual components are supported. These include:
  • Java Data Objects (JDO) -- notes
  • Java Persistence API (JPA) -- notes *
  • Java Server Faces (JSF) 1.1 - 2.0 **
  • Java Server Pages (JSP) + JSTL ***
  • Java Servlet API 2.4 -- notes
  • JavaBeans™ Activation Framework (JAF)
  • JavaMail -- notes
  • XML processing APIs including DOM, SAX, and XSLT
* For a guide on "converting" between JPA and JDO, see the blog entry at http://objectuser.wordpress.com/2009/07/04/17-minute-jdo/.

** JSF 1.1 appears to be working out-of-the-box. JSF 1.2 and JSF 2.0 should also work if you set the com.sun.faces.enableMultiThreadedStartup context parameter to false to your web.xml file. Setting this parameter to false (it's set to true by default) will prevent additional threads from being spawned. For more information on running JSF 2.0 in App Engine, see this Site.

*** JSP session beans are not supported; to enable EL parsing, add <%@page isElIgnored="false" %> to your JSPs and <%@tag isElIgnored="false" %> to your tag files.

Not supported

There are various APIs and technologies that are not supported by App Engine at present for various reasons. These include:
  • Enterprise Java Beans (EJB)
  • JAX-RPC
  • JAX-WS
  • JAXB
  • Java Database Connectivity (JDBC) **
  • Java EE™ Connector Architecture (JCA)
  • Java Management Extensions (JMX)
  • Java Message Service (JMS)
  • Java Naming and Directory Interface (JNDI)
  • Remote Method Invocation (RMI)
** App Engine's underlying datastore is based on BigTable, not a traditional SQL-based RDBMS like MySQL or PostgreSQL. You may either use the low-level datastore API or the JDO or JPA object-relational mapping interfaces provided. Various JDBC wrappers are available for the datastore, and you may still be able to connect to in-memory databases such as the H2 database engine or HSQLDB.

JVM-based Languages

NOTE: All JVM-based languages are subject to the same App Engine sandbox restrictions as Java.

BeanShell
Version(s): ?
Status: COMPATIBLE


CAL

Version(s): ?
Status: COMPATIBLE

Groovy
Versions: 1.6.1 +
Status: COMPATIBLE

JRuby (Ruby)
Versions: 1.3.1+
Status: COMPATIBLE (see notes)

Jython (Python)
Versions: 2.2, 2.5rc4 +
Status: COMPATIBLE

Quercus (PHP)
Version(s): ?
Status: COMPATIBLE

Rhino (JavaScript)
Version(s): ?
Status: COMPATIBLE

Scala
Version(s): ?
Status: COMPATIBLE
  • Scala works out-of-the-box as does the Lift Web Framework for Scala.
  • Scala Actors do not work, because they are implemented using threads, which are not supported.
  • Dave Briccetti has posted his experience running Scala with App Engine to his blog.

Miscellaneous Java™ Libraries and Frameworks

Apache Commons FileUpload
Version: 1.2.1
Status: SEMI-COMPATIBLE
  • The streaming API added in version 1.2.1 works out of the box.
  • The traditional API is not supported due to dependencies on java.io.File (App Engine does not expose a writable file system), although a custom FileItemFactory implementation that does not rely on writing files should work.
Apache HttpClient
Version: 4
Status: COMPATIBLE
  • Requires a custom ConnectionManager that wraps UrlFetch. Details are here and here.


Apache POI
Version(s): ?
Status: INCOMPATIBLE

Base64 (link)
Version(s): ?
Status: COMPATIBLE


BlazeDS
Version: 3.2.0.3978
Status: COMPATIBLE

Compass
Version(s): ?
Status: SEMI-COMPATIBLE

Direct Web Remoting (DWR)
Version(s): 2.0.5, 3.0 RC1
Status: COMPATIBLE


dyuproject (OpenID RelyingParty 2.0 implementation, OAuth consumer and service provider, JSON IOC, lightweight Servlet-based REST framework)
Version(s): ?
Status: COMPATIBLE


Ehcache
Version: 1.6.0
Status: COMPATIBLE

Facelets
Version: 1.1.14
Status: COMPATIBLE


Force.com Web Service Connector (sfdc-wsc)
Version(s): ?
Status: COMPATIBLE

Google Data (GData) client library for Java

Version(s): all
Status: COMPATIBLE
  • As per this FAQ, you need set a specific configuration error to avoid a runtime permissions error. Otherwise, you will see java.security.AccessControlException: access denied (java.net.NetPermission getCookieHandler) when you try to use the library.

Google Web Toolkit (GWT)
Versions: All
Status: COMPATIBLE

Grails
Version: 1.1.1
Status: SEMI-COMPATIBLE
  • A plugin has been made available which integrates the App Engine SDK with Grails, adding features to upload Grails application automatically and run the local dev server. To download this plugin or see a screencast and tutorial, see http://grails.org/plugin/app-engine.
  • As of now, you have to use the "grails app-engine run" command rather than "grails run-app", which blocks other plugins that extend run-app including the GWT plugin. More incompatibilities noted in this thread.

GraniteDS
Version(s): ?
Status: COMPATIBLE


Guice
Version(s): ?
Status: SEMI-COMPATIBLE
Notes:

Hibernate
Versions: All
Status: INCOMPATIBLE
  • You cannot currently use Hibernate directly. The differences between the App Engine datastore and SQL were too great to get the standard Hibernate up and running under App Engine. App Engine does support JDO and JPA, so you may be able to convert your Hibernate code to use one of these ORM interfaces.

ICEfaces
Version(s): 1.8.1
Status: INCOMPATIBLE


iText
Version(s): ?
Status: INCOMPATIBLE

ItsNat (http://www.itsnat.org)
Version: 0.7
Status: SEMI-COMPATIBLE
  • It works including AJAX: http://itsnatfeatshow.appspot.com/servlet?itsnat_doc_name=manual.core.example
  • Core level works but Comet (undefined thread retention is prohibited in GAE and sometimes a new thread is needed). Use timers (polling).
  • Most of components do not work because most of them use Swing classes (and some AWT class), these classes are not allowed in GAE.
  • More info: http://code.google.com/p/googleappengine/issues/detail?id=1313

Java Topology Suite (JTS)

Version(s): 1.10
Status: COMPATIBLE

JBoss Seam
Version(s): ?
Status: SEMI-COMPATIBLE

Jena Semantic Framework
Version(s): ?
Status: SEMI-COMPATIBLE

Jersey
Version: 1.0.2
Status: SEMI-COMPATIBLE
  • Jersey does not run in App Engine's production environment out-of-the-box, but you can make some modifications to get basic uses working. Several of these are documented at http://lqd.hybird.org/journal/?p=123.

log4j
Version(s): ?
Status: COMPATIBLE


MyFaces
Version: 1.1.6
Status: COMPATIBLE


OpenSocial client library for Java
Version(s): 20090402
Status: COMPATIBLE


OSGi
Version(s): ?
Status: SEMI-COMPATIBLE

PDFJet
Version(s): ?
Status: COMPATIBLE

Restlet
Version(s): 2.0 M5 + 
Status: COMPATIBLE
  • The team has created an adaptation of Restlet just for App Engine.
  • See http://wiki.restlet.org/developers/172-restlet/251-restlet.html for instructions on tuning a standard installation of Restlet for App Engine.
  • Here's another blog post from the team about Restlet: http://blog.noelios.com/2009/04/11/restlet-in-the-cloud-with-google-app-engine/

RichFaces
Version: 3.1.6
Status: INCOMPATIBLE
  • RichFaces depends on the javax.imageio package which is presently not listed on the JRE class whitelist.

SiteMesh
Versions: 2.4.2 +
Status: COMPATIBLE

Spring MVC
Version: 2.5.6
Status: COMPATIBLE

Spring ORM
Version: 2.5.6
Status: COMPATIBLE

Spring Security
Version(s): ?
Status: SEMI-COMPATIBLE

Stripes Framework

Version(s): ?
Status: COMPATIBLE

Struts 1
Version: 1.2.28
Status: COMPATIBLE


Struts 2
Version(s): ?
Status: COMPATIBLE (see notes)

Tapestry
Version: 5.0.18
Status: COMPATIBLE

Version: 5.1
Status: INCOMPATIBLE
  • Version 5.1 appears to rely on the Woodstox XML processor, which in turn relies on javax.xml.stream.XMLInputFactory, which isn't on the current JRE class white list. No workarounds are known at this time.

Tiles
Version: 2.0.7
Status: COMPATIBLE
  • Older versions may not work.

Vaadin
Version(s): ?
Status: COMPATIBLE

VRaptor 2
Version(s): ?
Status: COMPATIBLE
  • Requires App Engine sessions to be enabled.

WebORB
Version(s): ?
Status: COMPATIBLE

Wicket
Version(s): ?
Status: SEMI-COMPATIBLE

ZK
Version(s): 3.6.2 +
Status: COMPATIBLE
Version: 
Latest 3 messages about this page (134 total) - view full discussion
11:53am by Lombo
<%@tag isElIgnored="false" %> didn't compile to me
<%@tag isELIgnored="false" %> with capital L did
Nov 21 2009 by Lucas Cavalcanti
Hi,

VRaptor3 (http://vraptor.caelum.com.br/en) also works on GAE, with few
customizations that can be properly downloaded on google code:
http://code.google.com/p/vraptor3/downloads/list (Blank project for
google app engine).

Add VRaptor 3 to this page, please.

Thanks,
Lucas
Nov 22 2009 by Lucas Cavalcanti
Hi,

VRaptor3 (http://vraptor.caelum.com.br/en) also works on GAE, with few
customizations that can be properly downloaded on google code:
http://code.google.com/p/vraptor3/downloads/list (Blank project for
google app engine).

Add VRaptor 3 to this page, please.

Thanks,
Lucas
131 more messages »
Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2009 Google