`
pure
  • 浏览: 354327 次
社区版块
存档分类
最新评论

Play!跑在GAE上,小试GAE

阅读更多
昨天晚上就想发这个帖子,可惜javaeye老上不去,BS胡作非为的人。

很长一段时间就想试试GAE,用其它java框架麻烦了,感觉不够轻,在不久前发现了


http://www.playframework.org/

这个框架,相当于java on rails。以前的新闻已提到过。请参考:
http://www.iteye.com/news/8322
http://www.iteye.com/news/4196-play-another-java-web-application-framework
http://www.iteye.com/news/4395-play-1-0-stable4-version-of-the-release-and-to-provide-a-complete-program-of-the-forum-demo

这个是shinewang的blog,有很多play!的中文翻译,写的相当不错。
http://shinewang.iteye.com/blog/310439


我现在的GAE应用演示URL:http://javaweb2009.appspot.com/ 此演示是Play!自带的测试例子。

接下来的任务就是用Play!写一个单用户blog,这样就可以方便的利用Google的免费资源了,那是相当的酷。

另外Play!作者告诉我Play! 1.0正式版将在今年夏天完成,已就是这一二个月内的事,后面1.1将支持Scala。再就是完成Play!的文档工作。虽说当前Play!版本是1.0但是功能已经非常完善。

下面是作者的原话:

引用
I hope to release a 1.0 version during this summer.
At the same time we will launch a 1.1 branch including Scala support.

There is still a lot of work especially to complete the documentation.



Play!版本发布历史:

1.0-stable6, 1.0-stable5, 1.0-stable4, 1.0-stable3, 1.0-stable2, 1.0-stable1
分享到:
评论
54 楼 malligator 2009-07-25  
最新消息还是没有弄成功~
53 楼 Laynepeng 2009-07-20  
呵呵~成功的话吼一下。改天有时间我看看Play!源代码,看他对路径是怎么处理的~
52 楼 malligator 2009-07-19  
不好意思,有点误导了。
说绝对路径也找不到说得不太详细了,是这样的:
绝对路径是找到了SqlMapConfig.xml;但是在SqlMapConfig.xml里,会配置上其它的sqlMap文件,这些也用绝对路径?(估计这样可以吧,明天再试一下)
业余看这个的,没多少时间弄这个

谢谢你帮我找的链接:
按里面的说法,相当于把自己的代码打成一个独立的jar包了(文件夹);这倒是一个办法,改天再试一下...
51 楼 malligator 2009-07-18  
另外,放在Eclipse里是可以的(只不过这样就相当于没有用到play!了)

刚才找了一下,发现有一个play.Play.getFile(String)方法,但我用来找SqlMapConfig.xml
,一样不成功
50 楼 Laynepeng 2009-07-17  
绝对路径都不成功?这有点怪异~~

我帮你google到篇文章,你参考下:

http://groups.google.com/group/play-framework/browse_thread/thread/7401ad8f509ec380/41aaa8e6ed3773b5?lnk=gst&q=ibatis#41aaa8e6ed3773b5
49 楼 malligator 2009-07-17  
按我试验的,应该是要在什么配置文件里加东西的(比如什么config文件?但没找到什么文档,不知道怎么配),我做了如下尝试:
1. SqlMapConfig.xml 放在models里、controllers里
2. 读取这文件的类放在models里、controllers里,代码如下:
System.out.println(new java.io.File(".").getAbsolutePath());
        String resource = "SqlMapConfig.xml";  
        SqlMapClient sqlMap = null;  
        try {  
            Reader reader = Resources.getResourceAsReader(resource);  
            sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
3. 1和2的的组合,相应的写成:models/SqlMapConfig.xml, controllers/SqlMapConfig.xml
4. 根据上面打印的路径,是Play!的安装目录,也试过放在这里
5. 试过绝对路径:E:\\**\SqlMapConfig.xml
6. lib、config、public文件夹

均不成功!!

48 楼 Laynepeng 2009-07-17  
集成ibatis我没试过,但是Play!提供static目录,参考他的public目录的定义方法。我不肯定这个能行,这涉及到初始化顺序问题。。。

或者你尝试不要用model目录~

在你程序外面创建自己的package~
47 楼 malligator 2009-07-16  
谁说一下ibatis的SqlMapConfig.xml配置文件应该放哪里的?

我把它放在models里,一直报说找不到;
然后试一下把new File(.)的路径打出来,就是play!的安装目录,但我放在那里居然也不行
46 楼 Laynepeng 2009-07-14  
pure 写道
Laynepeng 写道
呵呵~分页问题解决了,看来靠自己还是比较重要,Play! Framework Group上给的意见,有点失望~

不是一次取出来在内存中分页吧?怎么解决的?

Post.find("select p from models.Post p order by date desc").page(1, 3);

.page(1, 3); 是已经支持的方法吗?我忙着搞rails呢!

另外blog中一篇文章可以属于多个目录,一个目录又有多篇文章,看来还是无法绕开多对多的关系映射啊。


呵呵~GAE怎么搞就不知道了。page(1,3)是Play!的方法,我估计大概是封装了JPA的setMaxResults和setFirstResult,我猜的,但大概是类似的实现,而GAE后面的实现我就管不到了。。。

前面遇到的主要是find方法没法和order by一起使用,所以选出来的内容无法倒序。。。要取后面的数据还得要全读出来,现在既然能够先order,那就可以用它的page方法了~~



ROR好东西,但是我只是看过一下演示,没操作过~~
本行不是搞web开发的~~
45 楼 pure 2009-07-14  
Laynepeng 写道
呵呵~分页问题解决了,看来靠自己还是比较重要,Play! Framework Group上给的意见,有点失望~

不是一次取出来在内存中分页吧?怎么解决的?

Post.find("select p from models.Post p order by date desc").page(1, 3);

.page(1, 3); 是已经支持的方法吗?我忙着搞rails呢!

另外blog中一篇文章可以属于多个目录,一个目录又有多篇文章,看来还是无法绕开多对多的关系映射啊。
44 楼 Laynepeng 2009-07-14  
呵呵~分页问题解决了,看来靠自己还是比较重要,Play! Framework Group上给的意见,有点失望~
43 楼 Laynepeng 2009-07-14  
george.SPACE 写道
george.SPACE 写道
Laynepeng 写道
george.SPACE 写道
GAE的TEXT类型根本无法使用,不管是直接使用JAVA,还是使用PLAY!框架。


怎么不能使用,存不进去,还是什么?把报错的log帖出来。我的两个例子的正文用了Text,但是comment没有,限制了comment的长度。

如需测试,可以用http://laynezone.appspot.com/的发表文章来测试。。。

你这个是Python的吧,我的Python也可以发表超过500个字符的文章。

Java使用com.google.appengine.api.datastore.Text,使用.getValue()也无济于事。


Java的~
使用那个Anotation才能保存的,GAE for Java上面有讨论,详见这个帖前面的内容~
42 楼 Laynepeng 2009-07-14  
george.SPACE 写道
根本就没有@Enumerated这个注解。


你怎么就不怀疑一下,你自己缺了jar包呢?@Enumerated是GAE那边提供的包,自己去找找~

具体哪个忘了,现在在公司~
41 楼 george.SPACE 2009-07-14  
pure 写道
Laynepeng试了,我也试了。

这两个都是Laynepeng的

http://laynezone.appspot.com/
http://layneblog.appspot.com/

要调 Text的getValue() 得到一个字符串对象来处理。持久化的时候要加@Enumerated注解。
根本就没有@Enumerated这个注解。
40 楼 george.SPACE 2009-07-14  
george.SPACE 写道
Laynepeng 写道
george.SPACE 写道
GAE的TEXT类型根本无法使用,不管是直接使用JAVA,还是使用PLAY!框架。


怎么不能使用,存不进去,还是什么?把报错的log帖出来。我的两个例子的正文用了Text,但是comment没有,限制了comment的长度。

如需测试,可以用http://laynezone.appspot.com/的发表文章来测试。。。

你这个是Python的吧,我的Python也可以发表超过500个字符的文章。

Java使用com.google.appengine.api.datastore.Text,使用.getValue()也无济于事。
39 楼 george.SPACE 2009-07-14  
Laynepeng 写道
george.SPACE 写道
GAE的TEXT类型根本无法使用,不管是直接使用JAVA,还是使用PLAY!框架。


怎么不能使用,存不进去,还是什么?把报错的log帖出来。我的两个例子的正文用了Text,但是comment没有,限制了comment的长度。

如需测试,可以用http://laynezone.appspot.com/的发表文章来测试。。。

你这个是Python的吧,我的Python也可以发表超过500个字符的文章。
38 楼 Laynepeng 2009-07-14  
george.SPACE 写道
GAE的TEXT类型根本无法使用,不管是直接使用JAVA,还是使用PLAY!框架。


怎么不能使用,存不进去,还是什么?把报错的log帖出来。我的两个例子的正文用了Text,但是comment没有,限制了comment的长度。

如需测试,可以用http://laynezone.appspot.com/的发表文章来测试。。。
37 楼 pure 2009-07-14  
Laynepeng试了,我也试了。

这两个都是Laynepeng的

http://laynezone.appspot.com/
http://layneblog.appspot.com/

要调 Text的getValue() 得到一个字符串对象来处理。持久化的时候要加@Enumerated注解。
36 楼 george.SPACE 2009-07-14  
pure 写道
GAE的Text可以使用啊,你说的无法使用是指什么?
你有试验成功的例子么?
35 楼 pure 2009-07-14  
GAE的Text可以使用啊,你说的无法使用是指什么?

相关推荐

    gae-pytorch-master_pytorch_pytorchgae_GAE_自编码器_gaepytorchmaster_

    用户可以下载这个压缩包,然后根据项目文档进行安装和运行,以复现GAE在图数据上的实验。 图自编码器在多个领域有广泛的应用,如社交网络分析、化学分子结构学习、推荐系统等。在社交网络中,GAE可以帮助理解用户...

    基于GAE的Demo

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

    gae_in_pytorch-master_GAE_

    VGAE是在GAE基础上引入了变分推断的概念,用于处理图的生成问题。在VGAE中,通过引入潜在变量来对图的生成过程建模,进而学习到更具有解释性的节点嵌入。 **三、PyTorch实现** 在PyTorch框架下实现GAE,首先需要...

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

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

    spring+gae

    Spring是一个广泛使用的开源Java框架,提供了依赖注入、面向切面编程和MVC(模型-视图-控制器)等功能,而GAE是Google提供的一个平台即服务(PaaS)解决方案,它允许开发者在Google的基础设施上部署和运行Web应用。...

    GAE上groovy初尝试

    标题“GAE上groovy初尝试”提示我们,这篇内容主要关于在Google App Engine (GAE) 上使用Groovy编程语言的初次体验。Google App Engine是一个托管服务,允许开发者部署和运行web应用,而Groovy则是一种动态、敏捷的...

    GAE使用规则

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

    让gae支持php的方法

    在Google App Engine(GAE)平台上,虽然原生支持的语言是Java和Python,但通过一些技术手段,我们确实可以实现对PHP的支持。标题"让gae支持php的方法"所指的就是如何在GAE环境中运行PHP应用程序。描述中提到的"基于...

    利用DJANGO在GAE上实现小型网络爬虫

    【标题】:“利用DJANGO在GAE上实现小型网络爬虫” 在当今互联网时代,数据挖掘和信息获取变得越来越重要,而网络爬虫是实现这一目标的重要工具。Django,一个强大的Python Web框架,通常用于构建网站应用,但也...

    可以放到GAE上的blog -- micolog

    【标题】"可以放到GAE上的blog -- micolog"指的是Micolog博客系统,这是一款能够部署在Google App Engine (GAE) 上的开源博客平台。GAE是Google提供的一个云计算平台,允许开发者运行Web应用程序而无需管理服务器...

    GAE blog安装

    标题“GAE blog安装”指的是在Google App Engine (GAE)上部署一个博客应用的过程。GAE是一个由Google提供的平台即服务(PaaS)云环境,允许开发者构建、运行和维护Web应用程序,无需管理和维护底层基础设施。在这个...

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

    GAE是Google提供的一项平台即服务(PaaS),允许开发者在Google的基础设施上运行自己的Web应用程序。这个包的特色在于“免配置”,意味着用户无需进行复杂的设置步骤,可以直接使用。 描述中提到,“GAE集成程序,...

    GAE之webapp框架

    在Google App Engine (GAE) 平台上进行Web应用开发时,选择合适的框架对于提高开发效率至关重要。其中,`webapp` 框架因其简洁高效而备受开发者青睐。本篇文章将详细介绍`webapp`框架的基本原理、组成部分及其实现...

    架设在GAE上的GTalk翻译机器人

    架设在GAE上的GTalk翻译机器人 **目前已经存在的功能: 1. (0.1版开始支持) 可以直接识别中文和英文,并自动进行互译 1. (0.1版开始支持) 可以翻译一段文章,而不单单只是一个单词** **以后可能会有的功能: 1. (0.2...

    jiql 允许你的应用在GAE上使用SQL语句

    jiql - (允许你的应用在GAE上使用SQL语句) jiql是在JAVA GAE上访问Google Datastore的JDBC wrapper jiql支持标准的sql语言进行访问原版的官方主页 www.jiql.org 由于原版源代码存在一些问题,所以对改版本做了...

    GAE入门教程

    pass之GAE入门教程, 学习GAE

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

    标题中的“如何在GAE中轻松使用Django框架”表明我们即将探讨的是如何在Google App Engine (GAE) 平台上有效地部署和运行Django Web应用程序。Django是一个流行的Python Web框架,它提供了诸如数据库管理、用户认证...

    在GAE中使用django模板

    标题 "在GAE中使用django模板" 涉及到的知识点主要是在Google App Engine (GAE)上部署和使用Django模板系统。GAE是一个由Google提供的平台,允许开发者构建和运行web应用,而Django则是一个流行的Python web框架,它...

Global site tag (gtag.js) - Google Analytics