这两天在搞
Lite XML支持Google AppEngine环境的一些尝试。这里将我碰到的一些问题罗列一下。一是征求一下高手门的解决办法,二是备他人参考讨论:
关于Eclipse下环境搭建,貌似je上已有一片不错的文章介绍:
http://www.iteye.com/topic/363786
这里就不多说了,我只说一下我们需要忍受的问题,而且有一些我暂时还没有解决办法
开发环境(Eclipse 插件)和线上环境严重不一致
这是我最头疼的问题。
1.本地调试环境下,一些静态资源经常被定位错误。
比如我的/styles/default.css,经常被定位为:/styles/default.css/index.html
猜测原因,对于静态资源来说,GAE服务器上是有专门的程序处理的(static/resource概念就为这个吧)
或者说,线上环境下可能根本就不是通过java环境处理静态资源,是他也就不可能有这类问题,但是本地调试环境全部资源都是jetty处理的,可能是某些处理目录默认索引页定向的bug导致了这种资源重定向的问题。
解决办法:我没找到,上传到服务器就好了。
2.服务端环境下,一些通配符(*.xxx这类)的 servlet-url mapping经常失效
具体重现方法还没找到,这点是非常让人郁闷的,经常本地调试正常,上传到服务器就不对了,反复排查,最后发现莫名其妙的好了。
解决办法,没有
GAE沙箱的限制:
处于安全考虑,GAE有很多限制:
我碰到的问题有:
1.不支持文件写入,哪怕是你自己站点下的文件
解决办法:别写文件
2.不支持JDK自带的Rhino JS引擎
解决办法:如果您需要JS运行环境,您可以吧mozilla 的Rhino包扔进去,但是不能使用javax.script接口了,直接用rhino编程吧。
3.不支持XPath
虽然号称支持XSLT(我没有验证)但是却不支持XPath,这点极其诡异。
报错大概是这样的:
XPathFactory#newInstance() failed to create an XPathFactory for the default object model: http://java.sun.com/jaxp/xpath/dom with the XPathFactoryConfigurationException: javax.xml.xpath.XPathFactoryConfigurationException: No XPathFactory implementation found for the object model: http://java.sun.com/jaxp/xpath/dom
解决办法:Apache 的 xalan.jar包仍进去吧,能后在用到的地方调用做一些必要的修改
if (xpathFactory == null) {
if (xpathFactoryClass != null) {
try {
//先创建指定的第三方xpath实现
xpathFactory = XPathFactory
.newInstance(XPathFactory.DEFAULT_OBJECT_MODEL_URI,
xpathFactoryClass, this.getClass()
.getClassLoader());
} catch (Exception e) {
log.error("自定义xpathFactory初始化失败", e);
}
}
if (xpathFactory == null) {
xpathFactory = XPathFactory.newInstance();
}
}
XPath xpathEvaluator = xpathFactory.newXPath();
其他注意事项
目录结构
war这个目录事固定的,我尝试修改,以失败告终
appengine-web.xml文件
这里有两个比较重要的概念
静态文件(static-files)可以看做你的Java程序无法访问的(估计GAE的静态资源和动态资源分开管理的)
资源文件(resource-files)运用程序可以访问的资源。
Google AppEngine文档上说,他们默认是把全部的资源都同时当作static files 和resource files的但是我有一个通配符失败之后的bug 就是配上这两个节点才莫名奇妙的正常的:
<static-files>
<include path="/**.js" />
<include path="/**.css" />
<include path="/**.json" />
<exclude path="/**.xhtml" />
</static-files>
<resource-files>
<include path="/**.*"/>
</resource-files>
分享到:
- 2009-04-12 18:36
- 浏览 1075
- 评论(0)
- 论坛回复 / 浏览 (0 / 2884)
- 查看更多
相关推荐
appengine-java-sdk-1.3.1 GoogleApp开发的SDK(Java版)
Eclipse Google 插件 Google App Engine SDK for Java Google App Engine文档 按钮 Google App Engine 开发包
Eclipse Google 插件 Google App Engine SDK for Java Google App Engine文档 按钮 Google App Engine 开发包
Google App Engine Docs,Google App Engine开发人员指南(Java版),简体中文离线文档,起始页为主目录下的appengine\docs\docs.html
基于Google App Engine(GAE)的Java和GWT应用开发_Google App Engine Java and GWT Application Development Nov.2010
描述如何用Java来开发Google AppEngine上的应用程序,迈向云的时代。
Google App Engine开发使用的sdk。因为文件大,分两个文件,这是第一部分。
中文名: 基于Google App Engine(GAE)的Java和GWT应用开发 原名: Google App Engine Java and GWT Application Development 作者: Daniel Guermeur, Amy Unruh 资源格式: PDF 版本: 文字版 出版社: Packt ...
基于Google App Engine开发,使用Eclipse需要安装的插件。因为使用Eclipse中的“install new soft”非常慢,或者根本找不到资源,所以提供这个包(For Eclipse 4.3 kepler)。使用方法:在eclipse安装目录下找到...
Google开发环境JDK,用于Goolge App Engine应用开发包
app engine可以提供几乎无限的计算能力,《google app engine编程:英文版》给出了简明扼要的指导,以便最大化利用其资源——信息来自app engine开发团队。 ·发现传统web开发和app engine开发之间的差异 ·学习...
该博客是学习google 的云计算平台app engine 平台做的简单的博客系统开发,里面借鉴很多成型的东西,来整合形成一个博客。本系统的开发关键是了解了云计算 尤其是 对app engine 平台的接口的了解 ...
Google_App_Engine开发环境搭建 java,里面有详细讲解和实例
GAE 程序开发指南 各种API详细解释 主要面向java开发语言
appengine-magic, 设计用来方便地从Clojure使用 Google App Engine的库 for图书馆试图抽象基础结构螺母和 Bolts,用于为 Google App Engine 平台编写Clojure应用程序。Java为Java开发环境期望预先编译的类,通常不...
谷歌创意实验室今天推出了一个小型的开源项目Tailbone,允许开发者使用JavaScript来读、写Google App Engine Datastore中的数据。这为不熟悉或不喜欢使用Python、 Java、Go语言的开发者使用App Engine提供了一个新的...
《基于Google App Engine(GAE)的Java和GWT应用开发》(Google App Engine Java and GWT Application Development Nov.2010)文字版[PDF]
[基于Google.App.Engine(GAE)的Java和GWT应用开发].(Google.App.Engine.Java.and.GWT.Application.Development).Daniel.Guermeur.文字版
appengine-awt是在Google AppEngine环境中使用的java.awt和javax.imageio包的纯Java实现。 该代码主要基于Apache Harmony和Apache Sanselan项目。 当前,该库提供了足够的功能,可以使用蜡染将svg文件转码为图像。...
appengine-maven-plugin 支持App Engine开发人员的Maven插件。 在我们的官方《使用Apache Maven》文档站点上可以找到针对用户的更全面的文档。 Apache Maven是一个软件项目管理和理解工具。 它能够构建战争文件以...