Google App Engine支持哪些技术,不支持哪些技术(Java平台)

宗烨赫
2023-12-01

这篇文章来自于:http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine?pli=1

支持

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.

不支持

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 POI
Version(s): ?
Status: INCOMPATIBLE


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


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): ?
Status: UNKNOWN


iText
Version(s): ?
Status: INCOMPATIBLE


Java Topology Suite (JTS)
Version(s): 1.10
Status: COMPATIBLE


JBoss Seam
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


Restlet
Version(s): ?
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.


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: SEMI-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
 类似资料: