找回密码
 注册
搜索
免费空间 免费域名 免费AI 老牌主机商首月仅1美分!27美元/年!Namecheap优惠码Spaceship优惠码
查看: 1166|回复: 11

[薅羊毛] 基于GAE的比大菠萝相册更牛X的相册源码,附详细安装教程说明

[复制链接]
发表于 2010-10-1 10:47:23 | 显示全部楼层 |阅读模式
在一年前的今天,恋吧曾介绍过基于GAE的大菠萝相册,今天介绍一个比比大菠萝相册更牛X的相册源码。
预览截图可见:

基于Google App Engine的大菠萝相册diabloimage 0.05
Diabloimage:托管于Google App Engine的相册程序安装全解
基于GAE的相册程序今天终于发布war包了,供网友们部署自己的网络相册,之前迟迟没有发布,是因为自己的一点点私心,想等自己的婚纱照第一个放上去,呵呵,所以等到今天了。
war包请在这里下载。war包的WEB-INF/web.xml中有个地方有注释的,更改后可以设置当有人评论时,发送邮件提醒,appengine-web.xml总要修改我就不多说了,然后index.jsp中自己可以修改下文字,以符合自己的需要。
源代码在这里查看
查看效果请猛击此处
下载地址:http://code.google.com/p/terrycode/source/browse/#svn/trunk/wedding-photo
ps:29号,因为有不少网友要求放出源码,所以解压war 生成的文件就贡献给大家了。
9月30号:后来发现要下载 App Engine Java SDK,装这个后发现还要安装Java JDK  ,
Google App Engine  JAVA 开发环境搭建-JDK 安装
Google App Engine  支持 java 5 和java 6 ,当你的java应用程序运行在App Engine上时,它是用java 6 的虚拟机和标准库函数运行的。理论上,你必须用java 6 来编译和测试你的应用程序以确保本机开发环境与App Engine相似。
对于 Mac OS X  暂无java 6 版本提供, App Engine SDK  同样兼容 java 5 ,你可以用java 5编译过的classes 和JARs 更新 App Engine SDK (如果不是这2个版本java运行环境以后启动App Engine会出现问题)
JDK 下载地址: http://java.sun.com/javase/downloads/index.jsp ,JDK的安装过程就靠大伙自己去解决了!借助Google 相信伟大的你们一定会找出正确的答案!
JDK 安装完成后可以通过运行命令提示符运行 java -version 查看本机安装的java 版本

App Engine Java SDK使用见 http://code.google.com/intl/zh-CN/appengine/docs/java/gettingstarted/installing.html
源码下载地址:bzlba-photo.part1.rarbzlba-photo.part2.rar bzlba-photo.part3.rar

在打包下载的war 文件中找到 WEB-INF/appengine-web.xml 中修改 成自己的GAE ID,WEB-INF/web.xml中有个地方有注释的,更改后可以设置当有人评论时,发送邮件提醒。
<context-param>
  <param-name>commentNotificationEmails</param-name>
  <param-value>[email protected] </param-value><!– 有网友发表新评论后将通知邮件发给此邮箱多个邮箱用英文逗号隔开 –>
</context-param>
修改 成自己的GAE ID如下图:

Google App Engine Java SDK 上传文件方法:
这是我觉得最简单的方法,减去了yaml的配置烦恼和文件大小的限制。
第一步:下载appengine-java-sdk
第二步:解压下载文件
第三步:应用appcfg.cmd命令,比如我将SDK的文档放置在D盘,只要点击运行,输入CMD,在DOS运行模式下输入:
D:\appengine-java-sdk-1.2.1\bin>appcfg.cmd update E:\leapsoulcn\war
按照提示输入注册Google帐户的Email地址和密码即可。
如果碰到GAE应用空间不能上传的问题,进程吊死,你只要改变应用参数为rollback即可:
D:\appengine-java-sdk-1.2.1\bin>appcfg.cmd rollback E:\leapsoulcn\war
另据说Google App Engine上传也有续传工具,我没有找到。
详细的就不说了!
发表于 2010-10-1 10:51:59 | 显示全部楼层
好。第一个来支持
 楼主| 发表于 2010-10-1 10:53:17 | 显示全部楼层
 楼主| 发表于 2010-10-1 10:54:58 | 显示全部楼层
后边的就靠自己摸索了,我这下载 Java SDK 1.6很慢,本来打算配置后,给大家写个教程的。
但是等了很久也没有下载成功。
应该说大家照着方法可以搞定的
发表于 2010-10-1 10:58:01 | 显示全部楼层
实在是太麻烦了。还是不安装了
 楼主| 发表于 2010-10-1 11:13:10 | 显示全部楼层
回复 5# 毛小病


    其实你下载 App Engine Java SDK 后,看看能不能用,能用的话就不用安装Java sdk 了
发表于 2010-10-1 12:31:29 | 显示全部楼层
麻烦,不搞,期待新版sdupload
发表于 2010-10-1 15:27:33 | 显示全部楼层
麻烦不用、SDK下半小时就传200KB的文件不知
发表于 2010-10-24 21:33:38 | 显示全部楼层
Uncaught exception from servlet
javax.servlet.UnavailableException: Initialization failed.
        at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:200)
        at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:168)
        at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:123)
        at com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java:261)
        at com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:8486)
        at com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:8484)
        at com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java:24)
        at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:418)
        at com.google.net.rpc.impl.Server$RpcTask.runInContext(Server.java:572)
        at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:448)
        at com.google.tracing.TraceContext.runInContext(TraceContext.java:688)
        at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:326)
        at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:318)
        at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:446)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:636)
Unexpected exception from servlet: javax.servlet.UnavailableException: Initialization failed.

怎样解决?
发表于 2010-10-25 11:48:32 | 显示全部楼层
确实不错,AJAX。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|免费吧论坛

GMT+8, 2025-5-25 23:23 , Processed in 0.081768 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表