且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Tomcat相关总结

更新时间:2022-10-10 23:24:53

1、Tomcat中的manager用户配置
手动安装的tomcat没有生成admin跟manager用户,要进入tomcat的admin管理界面必须自己手动添加.打开tomcat安装目录下的conf/tomcat-users.xml文件,在<tomcat-users>和</tomcat-user>中间添加
<?xml version='1.0' encoding='utf-8'?> 
<tomcat-users> 
    <role rolename="tomcat"/> 
    <role rolename="role1"/> 
    <role rolename="manager"/> 
    <role rolename="admin"/> 
    <user username="admin" password="admin" roles="admin,manager"/> 
    <user username="tomcat" password="tomcat" roles="tomcat"/> 
    <user username="role1" password="tomcat" roles="role1"/> 
    <user username="both" password="tomcat" roles="tomcat,role1"/> 
</tomcat-users>
重新启动Tomcat ,在登录时使用 用户名admin 密码 admin 登录即可。

2、Tomcat端口修改

进入Tomcat 5.5\conf\(以tomcat5.5为例)下..打开server.xml 找到一下代码部分
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
    <Connector className="org.apache.catalina.connector.http.HttpConnector"
               port="8080" minProcessors="5" maxProcessors="75"
               enableLookups="true" redirectPort="8443"
               acceptCount="10" debug="0" connectionTimeout="60000"/>
    <!-- Note : To disable connection timeouts, set connectionTimeout value 
     to -1 -->
修改port="8080" 中的8080为你想修改的端口就可以了

3、修改tomcat发布路径
(默认路径:Tomcat\webapps\ROOT)
    打开配置文件(偶的如下:D:\ProgramFiles\Tomcat\conf\server.xml),找到: 
<Engine name="Catalina" defaultHost="localhost"> 
<Host name="localhost"  appBase="webapps" 
            unpackWARs="true" autoDeploy="true" 
            xmlValidation="false" xmlNamespaceAware="false">      
      </Host> 
</Engine> 
 
在<host></host>标签之间添加上: 
<Context path="" docBase="photo" debug="0" reloadable="true" /> 
path是说明虚拟目录的名字,如果你要只输入ip地址就显示主页,则该键值留为空; 
docBase是虚拟目录的路径,它默认的是$tomcat/webapps/ROOT目录,现在我在webapps目录下建了一个photo目录,让该目录作为我的默认目录。 
debug和reloadable一般都分别设置成0和true。 
这样,再访问服务器时就找$tomcat/webapps/photo下的页面了

4、多域名绑定 

    打开配置文件(偶的如下:D:\ProgramFiles\Tomcat\conf\server.xml),找到: 
<Engine name="Catalina" defaultHost="localhost"> 
<Host name="localhost"  appBase="webapps" 
            unpackWARs="true" autoDeploy="true" 
            xmlValidation="false" xmlNamespaceAware="false">      
      </Host> 
</Engine> 
 
修改为: 
<Engine name="Catalina" defaultHost="pic.redcollar.com"> 
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm" 
             resourceName="UserDatabase"/>  
    <Host name="pic.redcollar.com"  appBase="abcapps" 
            unpackWARs="true" autoDeploy="true" 
            xmlValidation="false" xmlNamespaceAware="false">   
    </Host> 
    <Host name="pic1.redcollar.com"  appBase="D:\Program Files\Tomcat\test" 
            unpackWARs="true" autoDeploy="true" 
            xmlValidation="false" xmlNamespaceAware="false"> 
    </Host> 
    <Host name="localhost"  appBase="webapps" 
            unpackWARs="true" autoDeploy="true" 
            xmlValidation="false" xmlNamespaceAware="false">        
      </Host> 
    </Engine> 
 
这里解释一下上面的配置 
Engine 的 dafaultHost :表示访问该tomcat默认进入的主机,注意一定不能是localhost,不然别人通过你的ip访问,就会默认进入tomcat的管理界面. 
Host 的 name:表示该主机绑定的域名,如果绑定localhost则可以通过在浏览器中输入localhost访问该Host. 
Host的 appBase:表示该主机绑定的文件存放路径,可以使用相对路径或绝对路径. 
 
按照上面的配置: 
1.如果我在浏览器中输入http://localhost 则访问 D:\ProgramFiles\Tomcat\webapps\ROOT 下的网站 
2.如果输入http://pic.redcollar.com 则访问 D:\ProgramFiles\Tomcat\abcapps\ROOT 下的网站 
3.如果输入http://pic1.redcollar.com 则访问 D:\ProgramFiles\Tomcat\test\ROOT 下的网站. 

5、配置Mysql数据源
(1)、配置server.xml
 注:我的web在d:\myweb\myapps
 首先要将mysql的驱动程序放到d:\myweb\tomcat5\common\lib下面,一定要放".jar"的文件,如是".zip"的文件直接改为.jar即可。
 用文本编辑器打开D:\tomcat5\conf\server.xml,找到</host>结束标志,然后在之前加上如下语句:
 <Context path="/myapps" docBase="d:\myweb\myapps" debug="0"
reloadable="true" >
   <Resource name="jdbc/DBConnection"
               auth="Container"
               type="javax.sql.DataSource" />
   <ResourceParams name="jdbc/DBConnection">
    <parameter>
      <name>factory</name>
      <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    </parameter>
     <!-- Maximum number of dB connections in pool. Make sure you
         configure your mysqld max_connections large enough to handle
         all of your db connections. Set to 0 for no limit.
         -->
    <parameter>
      <name>maxActive</name>
      <value>10</value>
    </parameter>
     <!-- Maximum number of idle dB connections to retain in pool.
         Set to 0 for no limit.
         -->
    <parameter>
      <name>maxIdle</name>
      <value>3</value>
    </parameter>
 
     <!-- Maximum time to wait for a dB connection to become available
         in ms, in this example 10 seconds. An Exception is thrown if
         this timeout is exceeded.  Set to -1 to wait indefinitely.
        Maximum time to wait for a dB connection to become available
         in ms, in this example 10 seconds. An Exception is thrown if
         this timeout is exceeded.  Set to -1 to wait indefinitely.
         -->
    <parameter>
      <name>maxWait</name>
      <value>10000</value>
    </parameter>
 
     <!-- MySQL dB username and password for dB connections  -->
    <parameter>
     <name>username</name>
     <value>root</value>
    </parameter>
    <parameter>
     <name>password</name>
     <value>1234</value>
    </parameter>
     <!-- Class name for mm.mysql JDBC driver -->
    <parameter>
       <name>driverClassName</name>
       <value>com.mysql.jdbc.Driver</value>
    </parameter>
 
    <!-- The JDBC connection url for connecting to your MySQL dB.
         The autoReconnect=true argument to the url makes sure that the
         mm.mysql JDBC Driver will automatically reconnect if mysqld closed the
         connection.  mysqld by default closes idle connections after 8 hours.
         -->
    <parameter>
      <name>url</name>
      <value>jdbc:mysql://localhost:3306/forumdb?autoReconnect=true</value>
    </parameter>
  </ResourceParams>
 
</Context>
再次提醒:一定要放在</host>之前!
 
(2)、配置web.xml
 
web.xml位于d:\myweb\myapps\WEB-INF下,也即是你的WEB里的web.xml。
 同样用文本编辑器打开web.xml,然后加入如下语句(在<web-app>与</web-app>之间)
 <resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/DBConnection</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>

6、Tomcat配置虚拟目录

 tomcat 安装好之后,只需要把你的程序包放到$Tomcat_Home$/webapps下就可以直接使用了。这样会使webapps越来越大就需要设置虚拟目录: 

1.单个应用设置: 
 打开%Tomcat_Home%\conf\server.xml文件,在<Host>和</host>之间加上 
 <Context path="/site" docBase="d:\site" reloadable="true" debug="0"> 
 </Context> 

 参数:path 表示在浏览器中输入http://localhost:8080/site 
     docBase表示你的程序包的物理绝对路径,默认的绝对路径是$Tomcat_Home$/webapps 
 这样设定了之后会在$tomcat_home$/conf/catalina/localhost目录下生成一个site.xml文件,此文件的内容就是刚才设置的内容。

2.通过前面我们知道了在$tomcat_home$/conf/catalina/localhost目录下会生成相应的配置文件,因此我们可以直接在$tomcat_home$/conf/catalina/localhost目录下写配置文件文件名任意取,***是跟你的web应用相同便于管理,如site.xml内容同上 
<Context path="/site" docBase="d:\site" reloadable="true" debug="0">
 </Context> 

3.更改整个根目录: 
  找到<Host name="localhost" debug="0" appBase="webapps"  
  unpackWARs="true" autoDeploy="true"> 
 将appBase的设置成期望的路径(绝对路径) 
 出现的问题:输入:http://localhost:8080/没有出现默认的页面 
 原因当然是更改了路径造成的。解决也很简单了,把文件拷过来,或者再把原来默认的设成虚拟路径。 

7、debug启动模式

在%CATALINA_HOME%\bin\startup.bat中添加以下任意一行配置: 
SET JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n 
SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8787 

启动tomcat后,在控制台显示以下内容表示配置成功: 
Listening for transport dt_socket at address: 8787

 



本文转自 tianya23 51CTO博客,原文链接:http://blog.51cto.com/tianya23/309873,如需转载请自行联系原作者