`
chhj_292
  • 浏览: 37018 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Linux开发机上使用tomcat管理多个应用

阅读更多

Linux开发机上使用 tomcat 管理多个应用

 

本文可就《 阿里巴巴技术部新人指南- 创建简单的 WEBX 应用 》中提到的在开发机上使用tomcat 服务提供一种实现的方法。可能很多人在实现这个文档的 demo 项目时,都是在 windows 上使用的 tomcat ,我这里吧 tomcat 引入到日常的开发机中以提高工作效率。

Tomcat5.5说明

现在我们在开发机上使用的是Jboss Jboss 本身可以 run.sh 指定外置的配置来实现一个 jboss 管理多个服务,但是 tomcat 本身是没有这个能力的,他一次只能配置一个服务。但是我们可以提供一种间接的方式来实现配置个性化的服务。基本的原理就是在 tomcat 个性化的处理 conf webapps 这个目录。

我们以apache-tomcat-5.5.27 为例进行说明(略过安装 ... )。安装好 tomcat 之后,我们可以把这两个目录从根目录下移除,在 tomcat 安装目录外部定义好这两个文件夹,然后用 linux 建立一个软链接,哈哈,想必各位已经明白会发生什么事情了,我们可以对这两个外部的文件进行个性化定制(特别是 conf 下的配置文件,端口, ssi 等等)。那么 tomcat 还是一样的利用这些配置来给我们提供个性化服务了啊,间接的实现了配置分离。

下面,还有必要对conf webapps 这两个目录进行说明, conf 这个目录是 tomcat 默认配置的目录,但是 webpps 呢?要了解这个目录就要先大致了解下 conf 目录中的一些配置项目。咱们打开 conf/server.xml 配置文件,下面就本次配置用到的该配置文件的一些项目,引入 tomcat 官方的文档进行一些解释(感兴趣的可以看看,略过也无妨):

Engine

Engine 元素负责联系特定服务处理整个客户端请求。他从一个或者多个 Connectors 接受并处理所有 requests  (客户端请求) ,并且返回一个 response  响应)给 Connector最终由 Connector 返回给客户端。这种处理方式和我们 WEBX 框架中的 pipeline 处理方式很相像,甚至在 webx 的框架文档中描述了这种相似的处理方式。

我们要注意的不是这个Engine  元素,而是这个元素的一个属性: defaultHost 这个元素的值必须与 Engine 元素的子元素 Host 元素的 name 属性保持一致。很自然的,大家都会想要了解 Host 元素了吧!

Host

Host元素 定义一个默认的虚拟主机。我们真正要关心的是 appBase 这个属性 ,看看官方解释: The Application Base directory for this virtual host,原来是定义了这个虚拟主机的应用程序根目录,默认的值是 webapps ,这样一切都联系起来了吧。我们通过变换 appBase 这个属性的值,就可以任意的切换我们应用程序的目录了呀。

 

配置步骤,以webx 示例项目 workshop 为例

项目Demo 请参照:《阿里巴巴技术部新人指南 - 创建简单的 WEBX 应用》为例,哈哈,不要说没有哦,技术论坛上已经提供了(没有的同学, 这里有pdf 版本)。

好啦,不废话,下面开工咯:

进入格式的开发机下的/home/user_base/ 目录, user_base 是你自己的专有目录,可别搞错了,在这里感谢下 linux 这个多用户操作系统。

 

安装tomcat

userhome 目录下创建 /program/tomcat目录,将下载好的 apache-tomcat-5.5.27 解压至该目录下即可。

 

创建项目目录结构

创建好的目录如下所示:


project是项目的目录, deploy 是存放 tomcat 配置文件以及一下 shell 的目录。

创建项目

进入project 目录,执行: antx gen:web,这里使用的是 antx 创建项目,创建好的项目如下所示:


Src:项目源代码存储目录

Target:使用 antx 编译项目后的文件存储目录

Project.* antx 自动生成的项目配置文件,包含项目依赖以及引用的第二、第三方库信息

Antx.propertis antx 编译项目用到的一些配置项文件

 

配置tomcat

tomcat 中的 conf 目录和 webapps 目录移动至 deploy 目录下,呵呵,邪恶的方法从这里开始。以后我们打包好的项目可以拷贝至 webapps 目录下,自定义的配置可以直接在 deploy/conf 目录下进行配置。直接在 tomcat 的根目录建立这两个目录的软链接就可以了。这样我们间接的实现了针对不同的项目有不同的服务器配置,是不是和我们现在搞的 jBoss 的配置很像呢,配置好的目录结构如下:


Tomcat.sh tomcat 启动和关闭的 shell

Build.sh:编译项目,建立软链接的 shell

注:使用方式都可以使用sh shell_name userage 的方式查看使用方法。

最后上一张完整的目录结构图(看见这个蓝色的圆角长方形,大家知道我是用什么软件画的图了吧,哈哈,那就是MindManager ):


 

使用方法

我们按照《 阿里巴巴技术部新人指南- 创建简单的 WEBX 应用 》的说明,一步一步的创建好项目之后可以在project 目录中执行 antx goals=build 命令,在 project/target/ 下会生成打好的 war 包。

然后在将目录切换至deploy 目录下,执行 budil.sh ,这个 shell 。不要被这个 shell 的名字迷惑了,现在我做好的这个版本并没有使用到 antx 编译项目,当然,加进去也是很容易的。 注意:这个shell 的第 22 行,相信熟悉 shell 的一看就知道,这一行是指定建立软链接的目录,如果你部署不成功,很有可能是软链接建立的目录不对,因为项目目录是千变万化的!

如果不确定有没有执行成功这个build 命令,可以在 webapps 中用 ll 命令查看一下,如果建立的软链接红光闪闪,那么恭喜你,你的 软链接建立错误 ,很有可能是上一步有误哦。现在我们只需要执行sh tomcat.sh start 命令就可以启动 tomcat 了。

 

 

后记

其实我我做的这些工作只是一个抛砖引玉的作用,为tomcat 在开发机上的应用提供了一种实现的方式,毕竟 Jboss 的学习成本大大的高于 Tomcat 这个轻量级的 web 服务器。现在我做的这个还不是很完善,希望大家使用过后多提意见我好进一步改善。

有什么问题联系:

旺旺中国站:alijaver

邮件:mailer.cheng@gmail.com

  • 大小: 4 KB
  • 大小: 4.8 KB
  • 大小: 3.9 KB
  • 大小: 14.4 KB
分享到:
评论
1 楼 chhj_292 2009-08-07  
shell和文档都打包放在了附件里!

相关推荐

    Linux系统下Tomcat使用80端口的方法

    很多情况下,我们在linux服务器上安装了tomcat或者nginx之类的软件. 当我们想用80端口的时候,如果不用root用户启动就会报错.  这是因为,对于linux系统而言,1024以下的端口,普通用户是无法使用的. 网上关于这...

    linux与tomcat

    Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix...

    linux服务器部署tomcat和Nginx的教程

     首先你得有一台可以玩的linux服务器,知道用户名和密码,然后你需要在windows电脑上安装两个可以连上linux服务器的工具,Xshell 5和Xftp 5,安装教程不多说,补图说明如何连上服务器:  xshell连接界面如下,输入...

    MCMS内容管理系统 v4.5.2.zip

    站群:MCMS支持站群,只需在服务器上架设一套铭飞MCMS就可以创建多个个网站,并且网站之间的数据是独立存在,很大程度降低了维护成本,与服务器资源的开销; 其他:html静态生成、标签式建站 技术支持:提永久升级...

    ip登记管理软件自己开发的(截图版)

    只要在局域网中选择一台电脑,安装本软件,就可以在局域网中其他电脑上,打开浏览器,自动获取本机ip地址及其他硬件信息,自动向软件登记ip地址,也可以登录软件,进行ip地址查询。 技术参数:本软件对系统的要求极...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速。它使用服务层框架可以将JavaBeans从Jsp/Servlet中分离出来,而使用表现层框架则可以将Jsp中剩余的JavaBeans完全分离,这部分JavaBeans主要负责显示相关...

    基于J2EE框架的个人博客系统项目毕业设计论...

    由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速。它使用服务层框架可以将JavaBeans从Jsp/Servlet中分离出来,而使用表现层框架则可以将Jsp中剩余的JavaBeans完全分离,这部分JavaBeans主要负责显示相关...

    让主机能和Linux的虚拟机内部SNAT网络互访

    比如我可以我的docker里面装了多个的Jdk,tomcat,mysql,甚至多个linux发行版.它的功能超级强大,但是有个问题,我要怎么样在我的主机上很方便的访问到这些装在docker上的服务应用,通常情况下,需要做端口转发,但是这种...

    JAVA班主任管理系统毕业论文(源代码+word论文).zip

    Java 可以运行与任何微处理器,用 Java 开发的程序可以在网络上传输,并运行于任何客户机上。 JSP是JavaServer Pages的简写。JSP技术能让Web开发员和网页设计员快速地开发容易维护的动态Web主页。 用JSP开发的Web...

    javapms门户网站源码

    Java是一种被广泛使用的网络编程语言,主要应用于企业、政府部门、电信、银行、手机平台开发等多个领域,是现在大型软件项目开发中的主角,长期占据《TIOBE世界编程语言排行榜》第一的宝座。随着Internet的发展,...

    JAVA_JSP_sql server企业合同管理系统设计软件源码+数据库+WORD毕业论文文档.zip

    服务器上我们选择Tomcat,是因为它小巧却功能强大,更重要的是,它是开源的,如今,开源软件越来越受到人们的重视,Linux就是一个成功的典型,虽然这对我们的开发没有实际的用处,但是顾客会优先选择用流行工具开发...

    JAVA上百实例源码以及开源项目源代码

    (1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户可以在终端上直接地使用它,...

    JAVA上百实例源码以及开源项目

    (1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户可以在终端上直接地使用它,...

    超级有影响力霸气的Java面试题大全文档

    当客户机第一次调用一个Stateful Session Bean 时,容器必须立即在服务器中创建一个新的Bean实例,并关联到客户机上,以后此客户机调用Stateful Session Bean 的方法时容器会把调用分派到与此客户机相关联的Bean实例...

    Oracle9i备课笔记——吕海东

    (1) DISK1在客户机上 (2) 选择产品:Oracle9i client (3) 选择客户端安装类型类型: 管理员类型:安装管理控制台,管理工具,网络服务,使用程序,和基本的客户端软件。 运行时类型:只安装应用开发程序,网络服务,...

    《Java-web程序设计》教案.doc

    2.B/S技术 使用动态网页技术开发网站实际上是B/S技术的一种应用,因此,要更好地理解动态 网页的开发原理,首先需要了解B/S技术的一些基本概念。 B/S技术跟C/S技术的区别: C/S(客户机/服务器)结构分为客户机和...

    Redis云管理平台CacheCloud.zip

    一、CacheCloud是做什么的CacheCloud提供一个Redis云管理平台:实现多种类型(Redis Standalone、Redis Sentinel、Redis Cluster)自动部署、解决Redis实例碎片化现象、提供完善统计、监控、运维功能、减少开发人员的...

    计算机应用基础第六章.doc

    F、对Linux服务器进行远程管理,不能使用Windows计算机。 正确答案: ABC 窗体底端 10 【填空题】 地址解析就是通过计算机域名得到计算机的( )地址。 正确答案: 第一空: IP 11 【填空题】 服务器页是指包含( ...

Global site tag (gtag.js) - Google Analytics