花了不少时间在AppEngine上部署了个项目,准备有空的时候就持续更新上去。
关于AppEngine现在还是有很多限制,比如不能写文件,不能使用很多java的标准类库,不能产生新进程等。
google列出了一个可用的java类库白名单,在部署你自己的项目的时候最好参考一下这个白名单,否则可能会在部署应用时遇到很多莫名的错误。虽然google提供了相关的SDK可以在本地模拟AppEngine的应用环境,大部分情况下都是正确的,但是有时候你会发现上传应用之后会无法成功部署。这个可能是因为本地应用引用的类库中可能引用了AppEngine不支持的类库。在部署不成功之后,首页只是出现叫你报告该错误而已,并没有提供详细的日志信息,这是很痛苦的。幸好在google的开发人员首页中有提供相关的日志信息,进入自己的控制台可以看到自己的相关项目的详细信息,但是这些日志信息可能不是很实时。另外到AppEngine社区去查找一些相关的信息也是一个很好的方法,在配置spring的过程中就在社区获得很多有用的信息,看起来AppEngine并不是完全兼容spring的,因为spring中使用了部分白名单中没有的类库,包括JSF1.2,现在也不兼容。
不过还好Spring还是可以配置使用的,JSF1.1也可以运行得很好。我现在在AppEngine上部署的项目就使用了Spring2.5,JSF1.1,Facelets1.14,Annotation,JPA。
目前只是个基本架构,只是将自己的Ajax框架QFaces部署了上去,现在可以在线看到这些组件的Demo了,并可下载该组件包。
http://huliqing-qfaces.appspot.com/qfaces-example/_qfaces.faces
1.QFaces1.4新增了两个组件:RegexValidator,SaveState, 这两个组件都不是ajax方式的,但是仍然实用,甚至比其它组件更好。
2.优化了部分javascript代码,并解决了部分在非UTF-8下javascript中文乱码的bug。
3.修正了Tree组件的编辑面板在FireFox下无法拖动的bug,继续扩大QFaces.js实用库。
4.现在兼容JSF1.1,在原来版本只兼容JSF1.2,为了在AppEngine上部署,所以兼容了JSF1.1
5.取消了对jsp的支持。现在版本必要的运行环境是:Facelets,JSF1.1或更高(建议使用JSF1.2)
欢迎朋友一起交流,或提供建议。
- huliqing@huliqing.name
- http://www.huliqing.name