GAE4J中framework限制列表

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)
Java Architecture for XML Binding (JAXB)
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
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
CAL, together with the Open Quark framework, can be run on App Engine. More details at http://www.kablambda.org/blog/2009/04/09/functional-programming-on-google-appengine/.

Groovy
Versions: 1.6.1 +
Status: COMPATIBLE
More information is available on the Spring Source blog.

JRuby (Ruby)
Versions: 1.3.1+
Status: COMPATIBLE (see notes)
AppEngine JRuby Code Site: http://code.google.com/p/appengine-jruby/
JRuby AppEngine Blog: http://jruby-appengine.blogspot.com/
Getting Started with Sinatra: http://code.google.com/p/appengine-jruby/wiki/GettingStarted
Running Rails 2.3.5 on AppEngine: http://code.google.com/p/appengine-jruby/wiki/RunningRails

Jython (Python)
Versions: 2.2, 2.5rc4 +
Status: COMPATIBLE
Modjy, used to bridge Jython WSGI applications to those running inside Java servlet containers, is also compatible with App Engine. See http://opensource.xhaus.com/projects/modjy/wiki/ModjyGoogleAppEngine for a quick tutorial.

Quercus (PHP)
Version(s): ?
Status: COMPATIBLE
See http://brian.brispace.net/2009/04/09/php-on-google-app-engine/#post-398 for an example of how to configure your deployment descriptor to work with Quercus.

Rhino (JavaScript)
Version(s): ?
Status: COMPATIBLE
For a quick tutorial demonstrating how to run Rhino and Helma NG on App Engine, see http://dev.helma.org/ng/Running+Rhino+and+Helma+NG+on+Google+App+Engine/.
Jack, a implementation of the JSGI spec with Rhino support, also works with App Engine. A servlet is available.

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
Apache POI relies on several classes not in the JRE class whitelist including java.awt.Color. A bug has been filed at https://issues.apache.org/bugzilla/show_bug.cgi?id=47497.

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


BlazeDS
Version: 3.2.0.3978
Status: COMPATIBLE
To workaround an EMFException thrown by flex.messaging.io.amf.AbstractAmfInput, follow Martin Zoldano's workarounds at http://martinzoldano.blogspot.com/2009/04/appengine-adobe-blazeds-fix.html.
You will need to enable sessions to get BlazeDS working.

Compass
Version(s): ?
Status: SEMI-COMPATIBLE
Shay Banon has posted a screencast at http://www.kimchy.org/searchable-google-appengine-with-compass/ which shows the basic configuration changes needed to enable full text search of datastore entities.
To workaround issues with Compass and JPA persistence, see http://forum.compass-project.org/thread.jspa?threadID=216243&tstart=0.

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
All features work aside from the DiskStore and replication, but workarounds are available. See http://ehcache.sourceforge.net/documentation/googleappengine.html for more.

Facelets
Version: 1.1.14
Status: COMPATIBLE


Force.com Web Service Connector (sfdc-wsc)
Version(s): ?
Status: COMPATIBLE
A pre-built JAR of the App Engine-compatible sfdc-wsc library is available for download at http://code.google.com/p/sfdc-wsc/downloads/list.

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
The Google Plugin for Eclipse enhances GWT and App Engine cross-development.

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:
Guice should work if you build it from trunk.
You may have to add a try-catch block to Finalizer.java to prevent a SecurityException from being thrown. More details at http://groups.google.com/group/google-guice/browse_thread/thread/13a63dc40684abe8.

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
iText relies on several classes not in the JRE class whitelist including java.awt.Color and java.nio.MappedByteBuffer. A bug has been filed at http://sourceforge.net/tracker/?func=detail&atid=365255&aid=2810312&group_id=15255.

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
A JTS + Restlet demo is available at http://iqbalyusuf.wordpress.com/java-topology-suite-google-app-engine-restlet-test/.
A JTS + GWT + Google Maps demo is available at http://giscloud.appspot.com.

JBoss Seam
Version(s): ?
Status: SEMI-COMPATIBLE
See http://ctpjava.blogspot.com/2009/04/jboss-seam-on-google-app-engine-first.html for a list of modifications that need to be made in order to get JBoss Seam working in App Engine's sandbox.

Jena Semantic Framework
Version(s): ?
Status: SEMI-COMPATIBLE
Jena Semantic Framework does not run in App Engine's production environment out-of-the-box since it relies on the restricted java.rmi.server package, but you can make some modifications to its source to get it working. The solutions are detailed at the bottom of http://groups.google.com/group/google-appengine-java/browse_thread/thread/c2c0d27a7ed42562.

Jersey
Version: 1.1.5
Status: COMPATIBLE
Works now and there is a tracing mechanism in place: http://blogs.sun.com/sandoz/entry/jersey_1_1_5_is
Tutorial: http://tugdualgrall.blogspot.com/2010/02/create-and-deploy-jax-rs-rest-service.html
Version: 1.1.5
Status: SEMI-COMPATIBLE
http://blogs.sun.com/sandoz/entry/jersey_apps_can_now_be
Guide for running Jersey on App Engine: http://iqbalyusuf.wordpress.com/google-app-engine-jax-rs-jersey/

log4j
Version(s): ?
Status: COMPATIBLE


MyFaces
Version: 1.1.6, 2.0.0-beta-3
Status: COMPATIBLE
A GAE + MyFaces 2.0.0-beta-3 tutorial is available.

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


OSGi
Version(s): ?
Status: SEMI-COMPATIBLE
At least one developer has managed to get OSGi working locally using the Equinox servlet bridge. Details at http://eclipsesource.com/blogs/2009/04/10/osgi-on-appengine/.
An open source port of Felix OSGi called Lemmon is available and has been successfully run on App Engine for Java. See http://lemmon.googlecode.com/.

PDFJet
Version(s): ?
Status: COMPATIBLE
Requires some tweaks to method definitions in several classes (e.g. Image.java, JPGImage.java) to use InputStream instead of File, and remove an AWT dependency in PixelGrabber.java. See http://groups.google.com/group/google-appengine-java/browse_thread/thread/a06dd822a6cee160 for more.

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
Beginning with version 2.4.2, SiteMesh contains some fixes to allow it to work more smoothly on App Engine, as indicated on its blog.
To use older versions of SiteMesh you may need to make modifications to the com.opensymphony.module.sitemesh.Factory.getEnvEntry method and build the JAR file for the library. For more details, see http://groups.google.com/group/google-appengine-java/browse_thread/thread/1e3868a6a2661585.

Spring MVC
Version: 2.5.6
Status: COMPATIBLE
To see Spring's MVC framework running on App Engine, check out the autoshoppe sample application.
If you're using Spring forms (e.g. using the spring-form.tld tag library and subclassing SimpleFormController), you will need to register custom editors for your properties. This is covered in http://groups.google.com/group/google-appengine-java/browse_thread/thread/d93fd7385bf85bf7.

Spring ORM
Version: 2.5.6
Status: COMPATIBLE
To get Spring working with the App Engine-provided JPA interface, follow the instructions at http://objectuser.wordpress.com/2009/05/19/spring-jpa-in-google-app-engine/, which discusses a workaround to the dependency on javax.naming needed for @PersistenceContext. A more complex workaround is available at http://groups.google.com/group/google-appengine-java/browse_thread/thread/187d41712ec1d394.

Spring Security
Version(s): ?
Status: SEMI-COMPATIBLE
To work around a ClassNotFoundException, you can use a re-compiled version of the library which adds a StringInsensitiveComparator class -- the download is provided at http://www.google-app-engine.com/blog/post/Spring-security-fix-for-google-app-engine.aspx.
See http://www.dotnetguru2.org/bmarchesson/index.php?p=1100 for tips on how to get Spring Security running with App Engine and GWT (in French).
See http://groups.google.com/group/google-appengine-java/browse_thread/thread/964e7f5e42840d9c for discussion on the integration.

Stripes Framework
Version(s): ?
Status: COMPATIBLE
The default multipartwrapper implementation needs a temporary directory on the local file system for file uploads, which App Engine doesn't allow. The workaround is to create your own implementation -- more details at http://groups.google.com/group/google-appengine-java/browse_thread/thread/81dbcf7cf2281014.

Struts 1
Version: 1.2.28
Status: COMPATIBLE


Struts 2
Version(s): ?
Status: COMPATIBLE (see notes)
Struts will not initially work because the OGNL permissions which the framework relies on can't be set due to security restrictions in App Engine's sandbox. However, some users have documented a workaround at http://groups.google.com/group/google-appengine-java/browse_thread/thread/19018b0317f27817.
A tutorial is available at http://whyjava.wordpress.com/2009/08/30/creating-struts2-application-on-google-app-engine-gae/.
A tutorial on uploading files using Struts running on App Engine is available at http://whyjava.wordpress.com/2009/10/04/file-upload-on-google-app-engine-using-struts2/.
Will need to set devMode to false in struts.xml: <constant name="struts.devMode" value="false" />
A group post detailing this is here: http://groups.google.com/group/google-appengine-java/browse_thread/thread/b78fea68441eaf4e/4eec677cef795e03

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
Vaadin-based applications can be deployed to App Engine. For more, see http://vaadin.com/wiki/-/wiki/Main/Google%20AppEngine%20HOWTO.

VRaptor 2
Version(s): ?
Status: COMPATIBLE
Requires App Engine sessions to be enabled.
VRaptor 3
Version(s): 3
Status: COMPATIBLE
http://vraptor.caelum.com.br/en
Starter template for using VRaptor with App Engine

WebORB
Version(s): ?
Status: COMPATIBLE
A patch was made available shortly after launch to make WebORB compatible with App Engine. The patch is available at http://www.themidnightcoders.com/blog/2009/04/running-weborb-for-java-in-google-app.html.

Wicket
Version(s): ?
Status: SEMI-COMPATIBLE
With a couple of quick workarounds, Dan Walmsley has deployed a basic app that uses Wicket. His write-up is located at http://www.danwalmsley.com/2009/04/08/apache-wicket-on-google-app-engine-for-java/.
Nick Wiedenbrueck has also published a write-up showing how to get a simple Wicket application running on App Engine, located at http://stronglytypedblog.blogspot.com/2009/04/wicket-on-google-app-engine.html.
A tutorial is also available on http://hiroshi-koizumi.appspot.com/google-app-engine/wicket.jsp.

ZK
Version(s): 3.6.2 +
Status: COMPATIBLE
Ajax + Mobile Java framework
A how-to on configuring a ZK-based application to work with App Engine is available at http://docs.zkoss.org/wiki/ZK/How-Tos/Installation/How_to_Integrate_ZK_with_Google_App_Engine.

转自http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine?pli=1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值