`
jindw
  • 浏览: 505140 次
  • 性别: Icon_minigender_1
  • 来自: 初到北京
社区版块
存档分类
最新评论

Google AppEngine 上开发做Java需要注意的问题

    博客分类:
  • Java
阅读更多
这两天在搞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>
分享到:
评论

相关推荐

    appengine-java-sdk-1.3.1 GoogleApp开发的SDK(Java版)

    描述中提到的"GoogleApp开发的SDK(Java版)"进一步强调了这个SDK是专门为在Google App Engine上开发Java应用设计的。SDK提供了本地开发环境,开发者可以在本地计算机上模拟Google App Engine的环境,进行应用的开发...

    google app Engine for java中文api

    Google App Engine for Java为Java开发者提供了一个全面而强大的云计算平台,不仅支持常见的Java Web开发技术,还引入了一系列创新特性,如自动伸缩、易于部署等,极大地降低了构建高性能Web应用的技术门槛。...

    appengine-java-sdk

    总结来说,"appengine-java-sdk"是开发和运行Java应用程序在谷歌AppEngine上的基石,它集成了GWT的支持,为开发者提供了完整的开发、测试和部署解决方案。利用这个SDK,开发者可以构建高效、可扩展的云应用,并享受...

    Google App Engine 入门教程

    综上所述,入门教程涉及到了安装与配置Eclipse开发环境、安装Google App Engine插件、创建和配置Web应用项目以及编译时的Java版本兼容性问题,这些知识点对于想要开始使用Google App Engine开发Web应用的开发者来说...

    Google App Engine for Java 中文指南

    Google App Engine for Java 是一个平台,允许开发者使用Java语言构建并托管网络应用程序,该平台运行在Google的强大可扩展基础设施上。这个平台的核心特性是它的Java运行时环境,它基于Java 6虚拟机(JVM),并且...

    Google App Engine 开发包(part1,共2部分)

    Eclipse Google 插件 Google App Engine SDK for Java Google App Engine文档 按钮 Google App Engine 开发包

    云端代码Google App Engine编程指南 高清带书签

    在谈论《云端代码Google App Engine编程指南》之前,我们需要先了解一下Google App Engine(GAE)平台的背景知识。Google App Engine(简称GAE)是由Google公司提供的一个无服务器(serverless)的云计算平台,该...

    Google App Engine 开发包(part2,共2部分)

    Eclipse Google 插件 Google App Engine SDK for Java Google App Engine文档 按钮 Google App Engine 开发包

    Google App Engine Documentation

    在“google-appengine-docs-20081003”这个压缩包中,可能包含了早期版本(2008年10月3日)的Google App Engine开发指南、API参考、最佳实践和示例代码等内容。这些文档帮助开发者了解如何利用Google App Engine构建...

    google app engine开发人员文档

    1. **安装和配置**: 首先,你需要下载并安装Google App Engine SDK,它包含了开发和部署应用所需的工具。然后,设置你的开发环境,确保你有合适的编程语言环境。 2. **创建项目**: 使用SDK创建一个新的项目,并配置...

    Google App Engine开发人员指南

    Google App Engine Docs,Google App Engine开发人员指南(Java版),简体中文离线文档,起始页为主目录下的appengine\docs\docs.html

    Begin Java Google APP Engine

    《 Beginning Java™ Google App Engine》是一本面向初学者至中级开发者的专业指南,旨在教你如何使用Java技术在Google App Engine上构建云端应用。Google App Engine是一个强大的云计算平台,它为Java开发者提供了...

    appengine-java-sdk-1.8.7.zip

    Java版本的App Engine,即我们讨论的"appengine-java-sdk-1.8.7.zip",是Google专门为Java开发者提供的工具包,用于在GAE上开发应用。 **主要组件和功能** 1. **SDK(Software Development Kit)**: SDK包含了开发...

    Google App Engine文档

    在**Google App Engine**上开发应用,你需要理解以下几个关键知识点: 1. **开发环境与部署**: 使用Google提供的SDK(软件开发工具包)进行本地开发和测试。SDK包括了模拟器,可以在本地环境中运行App Engine应用。...

    在Google App Engine上开发Flex应用(含简单示例源码)

    在Google App Engine上开发Flex应用是一项技术性强且充满挑战的任务,它涉及到多个技术栈的集成。Google App Engine(GAE)是一个基于云的平台,用于构建和运行Web应用程序,而Flex是一种用于创建富互联网应用程序...

    Google App Engine for Java快速入门指南v1.2.0

    安装完必要的工具后,可以通过Appengine-java-sdk在本地启动模拟器。这将模拟实际的App Engine环境,让你可以在开发过程中测试应用程序的功能和性能。 **2.5 上传应用程序到App Engine 上** 完成开发和测试后,下...

    appengine-java-sdk-1.5.0.1.zip_JDK1.5.0.1_appengine-java-s_appen

    标题中的"appengine-java-sdk-1.5.0.1.zip"表明这是一个关于Google App Engine Java SDK的压缩包,版本号为1.5.0.1。App Engine是由Google提供的一个平台,允许开发者使用Java或Python等语言创建并运行web应用程序。...

    Using Google App Engine

    Google App Engine(简称GAE)是Google于2008年推出的一项云服务,允许开发者使用Python、Java、Go等多种语言构建并部署Web应用。GAE提供了自动扩展、高可用性和全球分布等特性,使开发者能够专注于编写代码而无需...

Global site tag (gtag.js) - Google Analytics