开源镜像站汇总
2013-01-24 09:46
176 查看
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
解压至该目录下即可。
创建项目目录结构
创建好的目录如下所示:![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/26/7423fc9795993d248148a7e4fb0d9d22.jpg)
project是项目的目录,
deploy
是存放
tomcat
配置文件以及一下
shell
的目录。
创建项目
进入project目录,执行:
antx gen:web,这里使用的是
antx
创建项目,创建好的项目如下所示:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/26/dea3301ba96197beb7b17c3dd7103794.jpg)
Src:项目源代码存储目录
Target:使用
antx
编译项目后的文件存储目录
Project.*:
antx
自动生成的项目配置文件,包含项目依赖以及引用的第二、第三方库信息
Antx.propertis:
antx
编译项目用到的一些配置项文件
配置tomcat
将tomcat中的
conf
目录和
webapps
目录移动至
deploy
目录下,呵呵,邪恶的方法从这里开始。以后我们打包好的项目可以拷贝至
webapps
目录下,自定义的配置可以直接在
deploy/conf
目录下进行配置。直接在
tomcat
的根目录建立这两个目录的软链接就可以了。这样我们间接的实现了针对不同的项目有不同的服务器配置,是不是和我们现在搞的
jBoss
的配置很像呢,配置好的目录结构如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/26/189965f23748c89330f5819c14e6fe43.jpg)
Tomcat.sh:
tomcat
启动和关闭的
shell
Build.sh:编译项目,建立软链接的
shell
注:使用方式都可以使用sh shell_name userage
的方式查看使用方法。
最后上一张完整的目录结构图(看见这个蓝色的圆角长方形,大家知道我是用什么软件画的图了吧,哈哈,那就是MindManager
):
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/26/79bf558fbf8673b3b8ea8c2619a30d48.jpg)
使用方法
我们按照《阿里巴巴技术部新人指南-
创建简单的
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