背景

记录一次使用tomcat搭建java应用的过程

工程环境

  1. java应用(基于java1.7开发)
  2. jdk1.7
  3. tomcat-8.5.xx
  4. oracle12

搭建步骤

工具安装

java 安装

  1. java下载安装不做赘述,自行百度
  2. 环境变量配置
  • CLASSPATH(java应用类搜索路径) .;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;
  • PATH(应用程序加载路径) ;%JAVA_HOME%\bin
  1. 验证java是否安装成功,cmd运行java -version

tomcat 安装

  1. 下载地址:https://tomcat.apache.org/download-80.cgi 下载后解压即可使用
  2. 环境变量配置
  • CATALINA_HOME(tomcat批处理文件搜索路径,也可在start.bat目录下配置,此处不配置,.bat不要随意移动位置,否则会出现搜索不到tomcat的问题)
  • CLASSPATH(可省略) D:\tomcat\lib\jsp-api.jar;D:\tomcat\lib\servlet-api.jar;
  1. 运行tomcat
  1. 目的:登录Manager控制台,管理应用程序或给应用程序授权
  2. 切换到tomcat/conf/目录下,在tomcat-users.xml的…中添加如下内容
<tomcat-users>
  <role rolename="manager-gui"/>
  <user username="username" password="password" roles="manager-gui"/>
</tomcat-users>
  1. 访问Manager APP
  1. 遇到的问题
  • tomcat启动时,命令窗口中文乱码

切换到tomcat/conf/目录下,将logging.properties 中 java.util.logging.ConsoleHandler.encoding = utf-8改为java.util.logging.ConsoleHandler.encoding = GBK

切换到tomcat/conf/目录下,将server.xml 中默认端口8080改为未使用的端口即可,如下:

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

配置文件

配置tomcat/conf/web.xml

  1. web.xml作用
  1. 修改tomcat访问权限

此步骤是为了启动服务时,tomcat能够访问应用目录下的所有文件
将tomcat/conf/web.xml修改如下

    <servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <param-value>true</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

配置tomcat/conf/server.xml(重要)

  1. server.xml作用
  1. 增加<Context>来添加工程路径dosBase

在<Host>…</Host>内增加如下代码:

<Context path="" docBase="D:\AppStore" debug="0" reloadable="false" privileged="true"/>

注意目录层级,docBase目录下必须有WEB-INF文件,且和下图层级一致,否则无法加载工程应用
path:应用上下文路径,即访问 :port/path/,可以为空,不为空必须以\’/\’开头
docBase:可以是绝对路径也可以是相对路径
reloadable:扫描WEB-INF目录下class和lib中的jar包是否有更新,以此判断是否重启服务

  1. 修改<Host>中应用程序加载路径appBase
<Host name="localhost"  appBase="D:\appstore"
      unpackWARs="true" autoDeploy="true">

appBase,即存放应用程序的目录
注意目录层级,appBase目录下必须有WEB-INF文件

配置tomcat/conf/context.xml(重要)

  1. context.xml作用
  1. 修改<Context>来添加应用程序路径

添加如下代码(注意结尾没反斜杠噢

<Context path="" docBase="D:\AppStore" debug="0" reloadable="false" privileged="true">
  1. 增加<Resourses>来添加JNDI数据源

在<Context>…</Context>内添加如下内容

<!-- name,指定JNDI名称 -->
<!-- auth,表示认证方式,一般为Container -->
<!-- maxIdle,连接池中最多可空闲连接数 -->
<!-- maxWaitMillis,连接池中连接用完时,新的请求等待时间,单位毫秒 -->
<!-- username,password,数据库用户名/密码 -->
<!-- driverClassName,jdbc驱动 -->
<!-- url,数据库url地址 -->
<Resource name="/jdbc/WebData" type="javax.sql.DataSource"
        auth="Container" 
	maxTotal="10000"
	maxWaitMillis="150"
	maxIdle="10"
	driverClassName="com.P6Driver"
	url="jdbc:oracle:thin:@127.0.0.1:1521:oracle"
	username="admin"
	password="admin"/>
	<Resources cachingAllowed="true" cacheMaxSize="100000"/>

更多释义见大佬博客https://www.cnblogs.com/xyhero/p/9343924.html

部署应用

第一种方式:将应用程序放置在tomcat\webapps应用目录下

  1. 将应用程序放置在tomcat\webapps目录下
  2. 将对应版本的驱动包(jar包)放置在tomcat>lib目录下,数据库版本与驱动包版本必须一致
  3. 在context.xml中配置数据源

第二种方式:修改appBase,将应用程序放置在appBase目录下

  1. 修改server.xml中appBase,将应用程序放置在appBase目录下
  2. 将对应版本的驱动包(jar包)放置在tomcat>lib目录下,数据库版本与驱动包版本必须一致
  3. 在context.xml中配置数据源

第三种方式:增加docBase,将应用程序放置在docBase目录下

  1. 在context.xml增加docBase,将应用程序放置在docBase目录下
  2. 将对应版本的驱动包(jar包)放置在tomcat>lib目录下,数据库版本与驱动包版本必须一致
  3. 在context.xml中配置数据源

第四种方式:自定义web部署文件

  1. 新建tomcat\conf\catalina\localhost文件夹,新建xml文件,在xml中写入:
<Context path="/web" docBase="E:\tomcat\web" debug="0" privileged="true"></Context>
  1. 多个应用程序添加多个xml文件,以应用程序文件名命名即可
  2. 将应用程序放置在docBase目录下
  3. 将对应版本的驱动包(jar包)放置在tomcat>lib目录下,数据库版本与驱动包版本必须一致
  4. 在context.xml中配置数据源

版权声明:本文为xiaohuboke原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/xiaohuboke/p/14218796.html