`
daxiong921
  • 浏览: 42854 次
  • 性别: 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使用规则

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

    基于GAE的Demo

    Eclipse开发 Gae,Struts2,Spring,云计算,学习gae云计算的好例子

    GAE入门教程

    pass之GAE入门教程, 学习GAE

    gae-pytorch-master_pytorch_pytorchgae_GAE_自编码器_gaepytorchmaster_

    图自编码器GAE的pytorch实现,参考论文vgae

    GAE之webapp框架

    GAE平台开发应用时,简单的webapp框架的使用

    GAE和SAE的比较

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

    gae_in_pytorch-master_GAE_

    图形自动编码器GAE的pytorch实现,可参考论文VGAE

    百度的bae跟谷歌的gae对比

    百度的bae跟谷歌的gae对比,百度的资源限制很少,但是资源很少,教程很少。。

    spring+gae

    实现了gae与spring3之间的集成

    GAE编程指南

    《GAE编程指南》是一种云计算服务,跟其他的同类产品不同,它提供了一种简单的应用程序构建模型,通过这种模型,你可以轻松地构建出能够容纳数百万用户的应用程序。《GAE编程指南》是介绍使用这个强大平台的专家级...

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

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

    GAE上可以用的JAVA 博客源代码

    GAE上可以用的JAVA Blog源代码 可以在GAE上直接使用,支持图片上传等。 源代码是修改其他网友的普通blog程序而来,只做了必要的修改,原结构保留 最新版本请去主页下载 http://redpower1998.appspot.com 主页包括...

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

    GAE 集成程序,共有三个软件包,解压后安装包里的python然后运行SDU里的exe文件,最后运行客户端加服务端中localproxy中的proxy.py就可以了

    gae编程指南

    《GAE编程指南》是一种云计算服务,跟其他的同类产品不同,它提供了一种简单的应用程序构建模型,通过这种模型,你可以轻松地构建出能够容纳数百万用户的应用程序。《GAE编程指南》是介绍使用这个强大平台的专家级...

    gae-mini-profiler-2.0.2.zip

    gae-java-mini-profiler.zip,google a p p engine java runtime的mini profiler(灵感来自于https://github.com/kamens/gae_mini_profiler上的python gae_mini_profiler和...

    让gae支持php的方法

    GAE虽然支持java了,但不幸的是依然不支持php 但是我们可以使用基于java的Quercus基本上可以100%的支持PHP语言

    GAE read rss send to 腾讯微博

    NULL 博文链接:https://zhuyx808.iteye.com/blog/980839

    GAE Java 中文文档

    从Google 上扒下来的! java 的中文文档~~ 方便大家学习! 打开"code.google.com\intl\zh-CN\appengine\docs"文件夹下的 docs.html 文件! 这是起始页!

    jieba-GAE:结巴中文分词 on GAE

    GAE有几个限制: 128M运行内存限制。 脚本执行时间限制。 禁止临时文件。 主要是针对这几个限制进行的处理。 处理后响应时间,免费配额的cpu,可以处理相当数量的请求。 处理后内存占用,刚好落在免费配额限制内。 ...

    GAE(Google App Engine)空间申请使用教程及 GAE域名捆绑方法

    GAE(Google App Engine)空间 GAE(Google App Engine)空间申请使用教程及 GAE域名捆绑方法使用教程及 GAE域 GAE(Google App Engine)空间申请使用教程及 GAE域名捆绑方法捆绑方法

Global site tag (gtag.js) - Google Analytics