在google云平台上部署Java web工程(在google app engine上部署自己的应用)

最近准备在Google 云平台上(之前的Google App Engine)部署我之前的一个Java web项目,现在将部署的过程记录下来


第一步 准备环境

  1. eclipse(我这里的版本是Eclipse 4.3 Kepler)
  2. JDK 7.0(google官网推荐是7.0版本,如果你的项目是在6.0的环境下开发的话,你需要重新再7.0的环境下编译测试)

https://developers.google.com/appengine/docs/java/gettingstarted/installing

  3.  安装Google Pulgin from eclipse,我在线安装的时候报错了 ,故转而下载安装本地离线包

安装说明   https://developers.google.com/eclipse/docs/install-from-zip?hl=zh-CN

下载地址  dl.google.com/eclipse/plugin/core/4.3/zips/gpe-e43-latest-updatesite.zip (国内网络貌似打开得有点慢,我用goagent翻墙出去下载的)

安装步骤:

常见的安装方法有如下几种:

  a) 打开eclipse-->help-->install from site--> add (work with)-->archive选中 之前下载的压缩包即可。 不过这种安装方法 在检查dependency的时候会非常缓慢。

 b)直接将下载的压缩包解压 将 features和plugins这两个文件件拷贝到eclipse的安装目录下载droplins目录下,重启myeclipse(或者eclipse)即可。


安装完成后会在eclipse(myeclipse)中看到google plugin for eclipse的图标:

在这个插件中我们可以看到gpe为我们提供的部署调试项目的一些功能。


第二步 部署DEMO 

      在正式部署自己的项目之前我们先将google app engine为我们提供的demo试着部署到gae上去。以下是部署的步骤。


   1.在我们正式使用google的服务之前我们首先对得注册一个google的账户 并且要申请 gae服务,申请的网址是:http://appengine.google.com 详细的注册步骤这里就不叙述。完了之后用自己的账户登录gae ,并在自己的控制台创建的自己的应用


        点击应用名字可进入到该应用的控制台(当然现在该应用的状态是未部署状态)

    2.在gae上创建完成了自己的应用之后,就可以打开集成开发环境eclipse进行开发了,google web application 同我们平时的web项目一样 他们的项目文件组成结构大同小异

我们看到 唯一的区别就是在WEB-INF目录下多出了一个appengine-web.xml,当然我们也不必手动建立这样的工程目录因为gpe的 New Web Application  向导会为我们自动生成这样的目录结构,我们要做的只需到google官网上下载 App Engine SDK (这里是appengine-java-sdk)https://developers.google.com/appengine/downloads?_ga=1.61215278.369480473.1395212552 最新的下载地址以网站更新为准。  然后将sdk加到项目的build path中去即可,然后根据 官网上的tutorial完善我们的guestbook的内容即可 https://developers.google.com/appengine/docs/java/gettingstarted/introduction。

3 .最后一步就是利用gpe将我们的项目上传到google的云平台上即可, 这里要注意 一定要将appengine-web.xml中的 <application>you app</application>       改为你在第1步中注册的应用的名称。最后使用ape 的Deploy to App Engine 向导即可完成整个部署。

4.访问我们部署在gae上的应用,我们每一步在gae上注册的应用google都会为我们的应用分配一个appsot.com下的以我们应用名称命名的域名,即 youapp.appspot.com ,通过访问分配给我们的这个域名即可访问我们部署在gae上的应用 , 但是不幸的是appspot.com的这个域名下的某些网站由于涉及到了某些对天朝不利的东西,这个域名已经被墙了,那么我们如何访问们的应用呢, 这个地方有个解决方案http://www.zhihu.com/question/21323419/answer/18135840但是我试过之后发现该方案只能用于第一次访问,网站处理业务需要跳转后就不能正确访问了。那怎么办呢, 在gae的控制台中我们发现了有一个可以为自己的应用绑定域名的功能(在Administration的Application Settings的Domain Setup里面)但是这里血药google apps来配合,现在google apps不提供正对个人用户的免费服务了,但是每个账户有30天的试用期,所以在这段时间内我们可以通过绑定自己的应用到自己的域名(可以在网上申请免费的域名)来访问应用,这篇文章讲述了使用google apps 来绑定域名的方法  

http://www.freehao123.com/google-apps/ (虽然文章讲的是免费获取google apps服务(现在已经没有了免费服务了,但是经过我后期的观察,我发现虽然google apps 服务过期了,但是它还能继续提供的绑定age应用的域名功能,因此采用这个办法是可以永久获取域名绑定服务的,呵呵) ,但是都会讲到绑定域名的方法 )。

最终极的解决不能访问域名的方法就是 fan qiang , 我使用的是goagent 关于goagent的使用方法网上一大堆教程 随便baidu  google即可。但是说到goagent我就不得不说我有一个很大的疑惑,goagent的原理和我们部署自己应用到gae的道理是一样的,它本身就是一个部署在gae的应用, 只不过distribute to everyone而已, 那为什么通过goagent的客户端我们可以访问部署在gae上的goagent服务端?难道客户端是直接访问的google为其分配的ip?要是这样的话我们每一个应用都有一个ip,那么google得向用户非配多少个ip呀? 最近这个问题一直在困扰着我, 那会大神知道其中的原理还希望不吝赐教。

5.最后访问的效果如下:


第三部 部署自己的项目 

     由于自己的项目(基于ssh的)会涉及到一些个人隐私,这里就不po出整个过程了,移植过程到第二部大同小异,这里给出一个部署的范例  http://www.cnblogs.com/default/archive/2010/11/05/1870313.html  但是要注意一下几点:


   1.需要将自己使用的第三方lib copy 到WEB-INF下的lib目录下。

    2.freemaker 需要用它的for  age版本否则会出错,详参见我的这篇blog

    




应用开发 Google App Engine & Google Web Toolkit入门指南 侯炯 录 第1章 应该了解下 1.1云基本知识 1.2Google App engine 1.3Google Web Toolkit 第2章 环境搭建 2.1安装JDK 2.2安装Eclipse 2.3安装SDK和Eclipse插件 第3章 Hello World! 3.1 创建项 3.2 录结构说明 3.3 修改文件 3.4 运行调试 第4章 华丽的控件 4.1 显示文本——Lable,HTML 4.2 方形选择框——CheckBox 4.3 圆形选择框——RadioButton 4.4 按钮——Button 4.5 自定义按钮——PushButton,ToggleButton 4.6 文件上传——FileUpload 4.7 时间选择器——DatePicker 4.8 列表控件——ListBox 4.9 联想输入框——Suggest Box 4.10 树结构——Tree 4.11 菜单条——MenuBar 4.12 栈板——StackPanel 4.13 基本输入框的——TextBox,PasswordTextBox,TextArea 4.14 弹出框框——RichTextArea 4.15 弹出对话框——DialogBox 4.16 修饰面板——DecoratorPanel 4.17 自然布局面板——FlowPanel 4.18 水平布面板——HorizontalPanel 4.19 垂直布局面板——VerticalPanel 4.20 绝对定位面板——AbsolutePanel 4.21 停靠面板——DockPanel 4.22 展开面板——DisclosurePanel 4.23 标签面板——TablePanel 4.24 水平拆分面板——HorizontalSplitPanel 4.25 垂直拆分面板——VerticalSplitPanel 4.26 网格——Grid 4.27 灵活表格——FlexTable 第5章 装饰控件 5.1 控件的主题 5.2 通过CSS装饰控件 5.3 通过代码修改控件 5.4 实例——火车时刻表 第6章 通信机制 6.1 RPC机制 6.1.1什么是RPC 6.1.2接口函数实现 6.1.3可序列化 6.1.4 注册服务 6.1.5 使用服务 6.1.6 实例——股票价格表RPC版本 6.2 Servlet机制 6.2.1 Servlet介绍 6.2.2 实例——Servlet版本HelloWorld 第7章 数据操作 7.1 概述 7.2 定义数据类 7.3 创建,获取和删除数据 7.4 查询和索引 7.5 事务 7.6 关系 7.7 实例——员工管理系统 第8章 国际化 8.1 普通文本国际化 8.2 参数文本国际化 8.3 实例 第9章 应用托管 9.1 申请Google App Engine账号 9.2 上传应用 9.3 应用维护指南 第10章 实战 10.1 入门例子——股票系统 10.1.1创建项 10.1.2设计应用 10.1.3建立用户界面 10.1.4创建控件和面板 10.1.5事件处理 10.1.6实现客户端功能 10.1.7添加应用样式 10.1.8国际化 10.1.9服务器交互 10.1.10让App Engine托管应用 10.2 中级例子——个人网站 10.2.1样子与功能 10.2.2创建项 10.2.3定义数据结构 10.2.4规定通讯协议 10.2.5实现数据交互和发送邮件功能 10.2.6注册提供服务 10.2.7总体界面设计 10.2.8首页界面实现 10.2.9日志界面实现 10.2.10关于我界面实现 10.2.11留言界面实现 10.2.12管理界面实现 10.2.13统筹界面和连接功能 10.2.14国际化 10.2.15欢迎界面和样式文件修改 10.2.16总结 10.3 高级例子——号码管家(GAE+GWT+Android) 10.3.1样子与功能 10.3.2创建项 10.3.4规定通讯协议 10.3.5实现服务端的功能 10.3.6注册提供服务 10.3.7帮助界面设计 10.3.8服务条款界面设计 10.3.9编辑界面设计 10.3.10登陆界面设计 10.3.11列表界面设计 10.3.12统筹界面和连接功能 10.3.13国际化 10.3.14欢迎界面和样式文件修改 10.3.15手机端界面与功能实现 10.3.16总结
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值