tomcat6.0安装配置

[size=medium]其实自己是一直使用resin的,但是也想用用tomcat,以备不时之需,再说他的使用者好像也是最多的吧.另外也打算弄弄jetty.

[b]1.安装运行[/b]
下载tomcat的二进制包,安装jdk,他其实就是运行在java之上,
所以如果我们从tomcat的源码重新编译,也就是重新编译打包那些java文件为jar,

直接解压缩tomcat包到$CATALINA_HOME, bin目录下是一些启动关闭脚本,
所以我们要启动tomcat,直接运行startup.sh就行了,shutdown.sh是对应关闭脚本.
这个方式启动的tomcat是在前端运行的,也就是它会开一个shell来运行tomcat,这对于开发阶段是挺方便的,其实在linux下startup.sh也是运行在后台,在window下才是另外打开一个shell窗口.其实这时的控制台信息被转移到了logs/catalina.out里面.
如果这时需要控制台信息(开发阶段),可以直接输入
#java -jar bin/bootstrap.jar

当部署的时候就应该让他运行在后台,这个时候要用到jsvc这个工具
cd $CATALINA_HOME/bin
tar xvfz jsvc.tar.gz
cd jsvc-src
autoconf
./configure
make
cp jsvc ..
cd ..
使用jsvc运行tomcat:
cd $CATALINA_HOME
./bin/jsvc -cp ./bin/bootstrap.jar \
-outfile ./logs/catalina.out -errfile ./logs/catalina.err \
org.apache.catalina.startup.Bootstrap


[b]2.配置tomcat应用[/b]
tomcat的主要配置文件是$CATALINA_HOME/conf/server.xml,context.xml
其实tomcat的配置挺绕的.一开始我是将应用配置到context.xml中(这好像是推荐的),
但是一直会出错.只好放弃,转到server.xml中,在<Host>下加上<Context>
一般tomcat会将appBase(一般为webapps)中的ROOT应用当成是根应用,但一般我开发也是使用根应用的,也就是contextPath为"/",我的做法是
<Context path="" docBase="/path/to/myapp" reloadable="true">
</Context>
注意path应该为"",而不是"/",而且必须唯一

有时我们是同时开发几个项目的,都要布置在tomcat下,这时有几种方法:
(1).直接在server.xml的<Host>下再写一个<Context>,类似上面那个,这在开发阶段比较有用.
(2).将项目应用放置到appBase(webapps)目录下.这时tomcat并不会自动加载项目应用,还要做如下工作之一:
a.在conf/Catalina/localhost下写一个跟项目应用同名的xml文件,在里面定义<Context>就像tomcat本身的host-manager,manager这两个应用.
b.在自己的项目应用下的META-INF下写一个context.xml文件,在里面定义<Context>
[b]
3.配置tomcat6的jndi的javax.sql.DataSource[/b]
一般一个应用包含一个jdbc源,所以我一般是将jndi DataSource源定义在应用<Context>下:
<Context ...>
...
<Resource name="jdbc/zbt" auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
maxActive="10" maxIdle="100" maxWait="3000"
username="zbt" password="123"
url="jdbc:mysql://localhost:3306/zbt?useUnicode=true&characterEncoding=utf8" />
...
</Context>
这里需要注意的一点是'&'符号在xml文件中必须被转义为'&'
然后在应用的web.xml中定义这个resource
<resource-ref>
<description>mysql jndi datasource</description>
<res-ref-name>jdbc/zbt</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
这样就可以在应用里lookup这个jndi源了
这里请注意<res-ref-name>里面的值必须和<Resource>里面name的值一样
还有就是在<resource-ref>, <Resource>都可以看到 resource type这个值为
javax.sql.DataSource, 这是因为jndi源不止包括DataSource,还包含定义其他资源, 比如Mail,所以必须指定resource type 的值

[b]4.修改tomcat的默认编码[/b]
tomcat6的默认编码为iso-8859-1, 但是为了不出现乱码问题, 一般的做法是前端文件, 后端程序, 数据库的编码都设置为utf-8.
所以还是修改tomcat的默认编码为utf-8
在server.xml的<Connector port="8080" URIEncoding="UTF-8" ....>

[/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值