tomcat6.0安装配置

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

1.安装运行
下载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


2.配置tomcat应用
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>

3.配置tomcat6的jndi的javax.sql.DataSource

一般一个应用包含一个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&amp;characterEncoding=utf8" />
...
</Context>
这里需要注意的一点是'&'符号在xml文件中必须被转义为'&amp;'
然后在应用的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 的值

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

你可能感兴趣的:(sql,tomcat,xml,linux,SQL Server)