在Azure Cloud Service中部署Java Web App(1)
Microsoft Azure是一个开放的,灵活的云平台,除了对自家的.Net平台有良好的支持外,对于各种开源的软件,语言,工具,框架都有着良好的支持,比如Java,Php,Python等等,你可以使用自己喜欢的语言开发任何应用部署在Azure的web site或者云服务中。

Azure的云服务是Azure的一个PAAS平台,同样支持多种不同的语言和框架,并且可以基于多种不同的阈值如CPU负载,队列,定时等等实现Auto scaling等高级功能,如下图所示:

本文简单介绍如何使用Azure所提供的Java的Eclipse插件,快速部署你的Java Web应用到Azure的Cloud Service,在你正式使用这项功能之前,希望你能了解以下一些限制,以便于你能更好的设计你的云端体系架构:
- 目前Azure的cloud service底层的虚拟机是Windows 2008/2012,如果你有一些应用是跑在Linux上需要迁移到Azure Cloud Service,并且依赖于一些Linux的系统调用,那么你需要做写一些代码修改
- Java应用在Cloud Service目前只能是workrole,没有.Net中web role和work role的定义和机制,但对于各项云服务如队列,存储,数据库等的使用并不受限制,你可以通过开发实现
回到正文,我们开始我们的Java On Azure之旅,首先你需要安装JDK,Eclipse,也必须要有一个Azure的账号,这些基础的部分就不赘述了,关于Azure账号申请的部分请登录官方网页或者联系你的IT管理人员(如果你们公司已经购买了Azure服务)
- 打开Eclipse,安装Azure for Eclipse插件。你或许使用各个Eclipse的不同版本或发行版本,比如Spring Tool Suite, JBOSS IDE, Oracle IDE, IBM IDE等等,只要是Eclipse based,安装过程都大同小异。
- 选择"Install New Software", 输入Azure插件的安装地址:http://dl.msopentech.com/eclipse,选择确定,在出现软件选择的时候选择全部安装,接受全部条款,然后一直next,知道安装完成,你的Eclipse会重启一次。


3. 完成安装后,我们就来创建我们第一个Azure Java的项目,因为本次主要是展示如何部署Java应用程序部署到Cloud Service,所以你需要准备一个一个你自己的WAR包,如果没有的话也ok,Azure自带了一个测试的helloworld.war,来进行简单的测试。打开Eclipse,选择New project,找到Azure deployment project,选择新建项目。

4.给你的项目写个名称,然后选择下一步:

5.在这个页面,你需要指定你部署到云服务中的JDK,应用服务器,以及应用。那么我先来看一下JDK的部分,有几种不同的选项,第一种是你可以部署你本地的JDK到云端,比如Oracle的JDK 1.8,你可以部署第三方的,从云端直接下载的JDK,目前只支持OpenJDK,你可以制定一个远端的站点进行下载,但必须要注意的是,远端的JDK必须是zip包,因为不属实脚本只负责将JDK解开,在本示例中,我选择部署我本地的Oracle JDK 1.8.0-60到云端:

6.第二个页面是需要选择你要部署的应用服务器,目前有多种服务器可供选择比,常见的Tomcat,Jetty,JBoss,GlassFish等都在列表中,本例中选择Jetty 9作为Java应用服务器;同样的,如果你有一些特殊的设置,你可以选择将本地的应用服务器上传到云端,只需要你指定本地服务器的路径即可。

7.最后一部分,是选择你要部署的Java Web应用程序,是一个标准的war包,默认情况下,Azure的应用程序会提供一个非常简单的HelloWorld的war包,他的基本功能就是输出经典的Hello Wolrd,如果你只想测试一下部署过程,可以选择该部署包,在本例中我会部署一个我的测试包Greenhouse.war:


8.点击完成,创建新的项目,创建完成后,你会看到如下图所示的项目结构。cert目录会存放一些项目需要的证书,比如远程桌面连接的证书,cloudtools是一些发布和构建工具,deploy里面是打包完成需要发布的包,workrole1是一些启动运行脚本和示例HelloWorld包,另外三个文件是包的定义,云端服务配置文件和定义文件。

在Azure Cloud Service中部署Java Web App(1)的更多相关文章
- 在Azure Cloud Service中部署Java Web App(2)
接上文. 9.在进行发布之前,需要对我们的订阅做一些设置,因为默认情况下,Azure的service end指向的是Azure global的站点,如果我们要将服务发布在Azure的中国站点,需要做下 ...
- 【Azure 云服务】如何从Azure Cloud Service中获取项目的部署文件
问题描述 在历史已经部署的云服务(Azure Cloud Service)中,如何获取到项目在很久以前的部署包文件呢? 解决办法 1)如果部署云服务是通过门户上传部署包到存储账号中,则可以直接从存储账 ...
- CentOS6.5中部署java web环境
原来在linux中部署java web环境,没有做好总结,这次在部署的过程中,将部署的过程做了记录,希望对大家有帮助.主要内容包括CentOS安装以后的网络设置,系统自带jdk的卸载,新版本jdk的安 ...
- 【转】Tomcat中部署java web应用程序
http://www.blogjava.net/jiafang83/archive/2009/06/02/279644.html 转载:今天给大家介绍怎样在Tomcat5.5.9中部署Java Web ...
- 在Tomcat中部署Java Web应用程序
在Tomcat中部署Java Web应用程序有两种方式:静态部署和动态部署.在下文中$CATALINA_HOME指的是Tomcat根目录. 一.静态部署 静态部署指的是我们在服务器启动之前部 ...
- Tomcat中部署Java Web应用程序的方式
Tomcat中部署Java Web应用程序的几种方式: #PetWeb是工程名 1.在TOMCAT_HOME\conf\server.xml文件的HOST节点中加入 <Context docBa ...
- 在Tomcat中部署Java Web应用程序几种方式
在Tomcat中部署Java Web应用程序有两种方式:静态部署和动态部署.在下文中$CATALINA_HOME指的是Tomcat根目录. 一.静态部署 静态部署指的是我们在服务器启动之前部 ...
- Windows Azure Cloud Service (11) PaaS之Web Role, Worker Role(上)
<Windows Azure Platform 系列文章目录> 本文是对Windows Azure Platform (六) Windows Azure应用程序运行环境内容的补充. 我们知 ...
- Windows Azure Cloud Service (12) PaaS之Web Role, Worker Role, Azure Storage Queue(下)
<Windows Azure Platform 系列文章目录> 本章DEMO部分源代码,请在这里下载. 在上一章中,笔者介绍了我们可以使用Azure PaaS的Web Role和Worke ...
随机推荐
- zabbix之1监控概念
1.通过通用的snmp监控,无需代理端 2.通过snmp代理 snmp代理的工作原理:在被监控端设置代理,代理不断的获取本地数据,而管理端定期通过代理获取监控数据. snmp目前有v1,v2,v3三种 ...
- 禁用ubuntu的触摸板和独显
#!/bin/bash #This is a vgaoff & touchpadoff #By spinestars #-2-18#TouchPad & VGA OFF == ];th ...
- apache主目录,配置文件目录结构说明
apache服务安装成功后,主要的目录结构如下: |-- bin 程序命令目录[apache执行文件的目录如apachectl,htpassed] |-- build |-- cgi-bin 预设给一 ...
- X windows的底层实现机制
Qt在Linux上运行崩溃了,很可能的原因是对于X11机制的不了解.很可能是UI代码里面对窗口的操作不规范而导致Qt内部的BUG暴露出来.具体UI实现代码我也没有看.是别人维护的.打算今天去看下代码, ...
- tr转换或删除字符
字符处理命令:tr —— 转换或删除字符 逐个字符处理而不是处理单词的tr [OPTION]... SET1 [SET2] -d: 删除出现在字符集中的所有字符 tr ab AB
- Impala 5、Impala 性能优化
• 执行计划 – 查询sql执行之前,先对该sql做一个分析,列出需要完成这一项查询的详细方案 – 命令:explain sql.profile 要点: • 1.SQL优化,使用之前调用执行计划 • ...
- jQuery.extend()、jQuery.fn.extend()扩展方法示例详解
jQuery自定义了jQuery.extend()和jQuery.fn.extend()方法.其中jQuery.extend()方法能够创建全局函数或者选择器,而jQuery.fn.extend()方 ...
- Ajax下载文件(页面无刷新)
说明:Ajax是无法实现文件传输的,本文只是模拟了Ajax不刷新页面就可以请求并返回数据的效果.实质上还是通过提交form表单来返回文件流的输出. 分步实现逻辑: ajax请求服务器,访问数据库,根据 ...
- Web Service中的XFire 传输List 自定义对象.
我把这个创建的步骤和代码的贴出来,. 首先新建一个工程,取名就随便点啦..MyWebService,然后复制jar包到lib目录下, 创建包,建立接口..写一个javaBean的类, 以下是一个简单的 ...
- 五、MP3文件认识上的几个误区
1.每帧播放时长都为26ms? 很多博客和文章都提到,Mp3文件每个帧的播放时长(Frame_PlayingTime)是26ms,这个结论是错误的.公式应该是这样的: 一个帧的播放时长=一个帧的采样个 ...