博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Tomcat--目录结构、源码配置运行
阅读量:2443 次
发布时间:2019-05-10

本文共 3918 字,大约阅读时间需要 13 分钟。

Tomcat目录结构

目录 目录下文件 说明
bin / 存放Tomcat的启动、停止等批处理脚本文件
startup.bat
startup.sh
用于在window和Linux下的启动脚本
shutdown.bat
shutdown.sh
用于在window和linux下的停止脚本
conf / 用于存放Tomcat的相关配置文件
Catalina 用于存储针对每个虚拟机的Context配置
context.xml 用于定义所有web应用均需加载的Context配置,如果web应用指定了自己的context.xml,该文件将被覆盖
catalina.properties Tomcat的环境变量配置
catalina.policy Tomcat运行的安全策略配置
logging.properties Tomcat的日志配置文件,可以通过该文件修改Tomca的日志级别及日志路径等
tomcat-users.xml 定义Tomcat默认的用户及角色信息配置
web.xml Tomcat中所有应用默认的部署描述文件,主要定义了基础Servlet和MIME映射
lib / Tomcat服务器的依赖包
logs / Tomcat的日志存放目录
webapps / Tomcat默认的Web应用部署目录
work / Web应用JSP代码生成和编译的临时目录

Tomcat的启动、停止和访问

启动:

双击 bin/startup.bat 文件

停止:

双击 bin/shutdown.bat文件

访问:

localhost:8080

Tomcat源码配置运行

  1. 下载对应版本源码包并解压
  2. 创建一个空项目
  3. 进入apache-tomcat-9.0.33-src文件夹,创建一个目录home,并将conf、webapps目录移入home目录中
  4. 在apache-tomcat-9.0.33-src文件夹下创建pom.xml文件,内容如下:
4.0.0
pers.zhang
Tomcat9.0
Tomcat9
9.0
Tomcat9
java
java
org.apache.maven.plugins
maven-compiler-plugin
2.3
UTF-8
1.8
1.8
org.apache.ant
ant
1.10.1
org.apache.ant
ant-apache-log4j
1.9.5
org.apache.ant
ant-commons-logging
1.9.5
javax.xml.rpc
javax.xml.rpc-api
1.1
wsdl4j
wsdl4j
1.6.2
org.eclipse.jdt.core.compiler
ecj
4.6.1
junit
junit
4.12
test
org.easymock
easymock
3.5.1
test
  1. 进入IDEA导入找到之前创建的目录,点击apache-tomcat-9.0.33-src目录下的pom.xml文件,进行导入

  2. 配置启动类:

    在这里插入图片描述

  3. 配置VM参数:

-Dcatalina.home=/Users/acton_zhang/J2EE/tomcat_source/apache-tomcat-9.0.33-src/home-Dcatalina.base=/Users/acton_zhang/J2EE/tomcat_source/apache-tomcat-9.0.33-src/home-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-Djava.util.logging.config.file=/Users/acton_zhang/J2EE/tomcat_source/apache-tomcat-9.0.33-src/home/conf/logging.properties

在这里插入图片描述

  1. 编译项目可能报错:
Error:(320, 45) java: 找不到符号    符号: 变量 VERSION_9 、10、11、12    位置: 类 org.eclipse.jdt.internal.compiler.impl.CompilerOptions

解决方案:统一将错误改为VERSION_1_8即可 (或者改为你项目的JDK版本 )

  1. 启动时控制台乱码

原因:一般是中文编码不匹配导致;经跟踪,发现是ResourceBundle读取org\apache\catalina\startup\LocalStrings_zh_CN.properties文件时没有用utf8解码导致;

解决方案:修改org.apache.tomcat.util.res.StringManager类中的getString函数:

在这里插入图片描述

  1. 访问页面,但是报错
    在这里插入图片描述

原因:是我们直接启动org.apache.catalina.startup.Bootstrap的时候没有加载JasperInitializer,从而无法编译JSP。

解决方案:在tomcat的源码ContextConfig中的configureStart函数中手动将JSP解析器初始化.

找到 java/org/apache/catalina/startup下 ContextConfig 这个类,在configureStart()方法的webConfig(); (代码775行)下面加上

context.addServletContainerInitializer(new JasperInitializer(), null);

在这里插入图片描述

  1. 再次访问,成功
    在这里插入图片描述

转载地址:http://bvpqb.baihongyu.com/

你可能感兴趣的文章
让你的Linux支持WEB修改密码(转)
查看>>
一个完整的ftp远程批量shell(转)
查看>>
crontab命令简介(转)
查看>>
带有农历的日历(QT版本1752-2100)(转)
查看>>
LINUX的系统内核空间的保护(转)
查看>>
在Visual C++中利用UDL文件建ADO连接(转)
查看>>
C++编程批评系列 继承的本质(转)
查看>>
共享软件中注册部分的简单实现(转)
查看>>
RedHat Linux 9下所有权和许可权限(转)
查看>>
C++程序设计从零开始之语句(转)
查看>>
利用Apache+PHP3+MySQL建立数据库驱动的动态网站(转)
查看>>
C#中实现DataGrid双向排序(转)
查看>>
利用C语言小程序来解决大问题(转)
查看>>
简单方法在C#中取得汉字的拼音的首字母(转)
查看>>
编程秘籍:使C语言高效的四大绝招(转)
查看>>
计算机加锁 把U盘变成打开电脑的钥匙(转)
查看>>
Fedora Core 4 基础教程 (上传完毕)(转)
查看>>
删除MSSQL危险存储过程的代码(转)
查看>>
红旗软件:树立国际的Linux品牌(转)
查看>>
Linux学习要点(转)
查看>>