`
daxiong921
  • 浏览: 43865 次
  • 性别: Icon_minigender_1
  • 来自: 龙岩
社区版块
存档分类
最新评论

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
分享到:
评论
2 楼 daxiong921 2010-07-19  
tidelgl 写道
用了InputStream了,还是不行啊

什么用了 inputstream 呢?
1 楼 tidelgl 2010-07-17  
用了InputStream了,还是不行啊

相关推荐

    基于GAE的Demo

    【基于GAE的Demo】是一个使用Eclipse集成开发环境构建的项目,主要展示了如何在Google App Engine(GAE)平台上整合Struts2、Spring和Tiles框架。GAE是Google提供的一个云计算平台,允许开发者在Google的基础设施上...

    spring+gae

    文件列表中的"spring-gae"可能是一个包含源代码、配置文件和文档的项目,展示了整个集成过程。通过深入研究这些文件,开发者可以学习如何将Spring的特性与GAE的云服务优势相结合,创建高效且易于维护的Web应用。这...

    GAE使用规则

    GAE使用规则GAE使用规则GAE使用规则GAE使用规则GAE使用规则GAE使用规则GAE使用规则GAE使用规则GAE使用规则

    gae-pytorch-master_pytorch_pytorchgae_GAE_自编码器_gaepytorchmaster_

    【压缩包子文件的文件名称列表】: "gae-pytorch-master" 暗示了压缩包包含的是整个项目源代码,可能包括训练脚本、模型定义、数据处理模块、配置文件等。用户可以下载这个压缩包,然后根据项目文档进行安装和运行,...

    gae_in_pytorch-master_GAE_

    **图形自动编码器(GAE)在PyTorch中的实现** **一、GAE概述** 图形自动编码器(Graph Autoencoder, GAE)是一种应用于图数据的深度学习模型,它结合了自动编码器(Autoencoder)的思想与图神经网络(Graph Neural...

    GAE入门教程

    pass之GAE入门教程, 学习GAE

    GAE包(以配置好,解压可用)

    根据压缩包子文件的文件名称列表 "gae",我们可以推测这个压缩包可能包含以下内容: 1. Google App Engine SDK:包含了开发、部署和管理GAE应用所需的所有工具和库。 2. Python解释器:GAE通常使用的Python版本,...

    关于GAE的教程、工具与文档(建站)

    4. **服务与版本管理**:在GAE上,你可以创建多个版本的服务,以便进行A/B测试或回滚更新。每个版本都可以独立配置,如设置流量分配,以便逐渐将用户引导至新版本。 5. **资源限制**:GAE对应用的运行时间和内存...

    GAE之webapp框架

    `webapp`框架内置在GAE的开发环境中,无需额外安装即可直接使用。 **特点:** - **简洁性**:`webapp` 提供了一种简洁的方式来处理HTTP请求。 - **集成性**:与GAE环境高度集成,易于使用GAE提供的各种服务。 - **...

    GAE blog安装

    在给定的文件名称列表中,我们看到了`index.yaml`,这通常是用于定义应用的索引规则,比如URL路由和静态文件处理。 3. **语言和框架**:GAE支持多种编程语言,如Python、Java、Go等。由于没有明确指出使用的语言,...

    GAE解决中文乱码问题

    4. **数据库配置**:如果你使用JDBC操作数据库,确保数据库连接URL中包含了字符集参数,如`useUnicode=true&characterEncoding=UTF-8`。 5. **日志输出**:使用`java.util.logging.Logger`时,可以自定义`Handler`...

    GAE和SAE的比较

    云计算下的PaaS中的GAE和SAE平台

    在GAE中使用django模板

    4. **设置Django应用**:在Django的`settings.py`文件中,配置数据库连接(GAE使用其自己的数据存储服务,可能需要特殊的适配器),以及添加应用到`INSTALLED_APPS`列表中。 5. **模板系统**:创建`templates`目录...

    GAE中整合SSH2的空项目备份

    标题“GAE中整合SSH2的空项目备份”暗示了这个压缩包可能包含了一个Google App Engine (GAE) 应用程序,该应用已经集成了Secure Shell (SSH) 协议的实现,可能是通过SSH2库来实现的。SSH2是一种网络协议,用于安全地...

    GAE read rss send to 腾讯微博

    GAE支持Python、Java、Go等多种编程语言,本案例中很可能是使用Python,因为它是GAE的早期支持语言,并且处理RSS和Web服务非常方便。 接着,应用的核心部分是RSS解析。Python有多个库可以用来解析RSS,例如...

    gtap,基于GAE的代理

    标题中的“gtap,基于GAE的代理”指的是一个名为GTAProxy的项目,它是一个构建在Google App Engine(GAE)平台上的代理服务。这个服务的主要目的是为用户提供访问Twitter API的能力,尤其在某些地区或者特定网络环境...

    在GAE中读取yaml的例子

    在GAE环境中,由于其沙盒环境的限制,你需要确保这个库已经包含在你的项目依赖中。你可以通过`requirements.txt`文件列出它: ```txt pyyaml==5.4.1 ``` 在Python代码中,你可以这样读取和解析YAML文件: ```...

    如何在GAE中轻松使用Django框架

    4. 由于GAE不支持传统的SQLite数据库,你需要在开发环境中使用如MySQL或PostgreSQL等其他数据库,然后在生产环境中切换到Datastore。 5. 设置`urls.py`文件,确保URL路由正常工作。 6. 在`app.yaml`文件中定义你的...

    让gae支持php的方法

    1. **安装和配置Quercus**:首先,你需要下载Quercus的Java库,并将其添加到你的GAE项目类路径中。这可以通过在你的项目`lib`目录下放置Quercus的JAR文件来完成。 2. **构建PHP处理程序**:创建一个Java类作为PHP...

Global site tag (gtag.js) - Google Analytics