Tomcat 不会用? 不存在的

Tomcat的使用

Tomcat是一个免费的开源的Servlet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun(现在已属于Oracle)和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP规范总能在Tomcat中得到体现

安装
Tomcat 的安全非常简单,下载安装包(版本 8.5.47) ,选择合适的文件夹,进行解压即可。

Tomcat 文件夹功能讲解

apache-tomcat-8.5.47\

bin\ 存放各种启动、停止脚本的。.sh 是以后在 linux 上用的,.bat 是在 windows上用的

startup.bat 启动服务,双击即可使用

conf\ 相关的配置文件,目前我们不用关心

lib\ 运行 tomcat 需要的类库,我们不关心

logs\ 运行时的日志文件,我们有时需要查看日志,来发现定位一些问题

temp\ 临时文件夹,不关心

webapps\ 存放我们要运行的 web application 的文件夹,对于我们最常用的一个文件夹

work\ Tomcat 内部进行预编译的文件夹,我们不关心
下面都是一些文档,有兴趣的同学可以自行阅读

BUIDING.txt
CONTRIBUTING.md
LICENSE
NOTICE
README.md
RELEASE-NOTES
RUNNING.txt

重点
bin\startup.bat
logs\下的各种日志文件
webapps\下的各个 web 应用

基本使用
双击 bin\startup.bat 启动

在这里插入图片描述
请求 http://127.0.0.1:8080/,访问的是 webapps\ROOT\ 文件夹下的应用

在这里插入图片描述

观察 webapps 下的文件结构

webapps
docs
examples
host-manager
manager
ROOT\

每个文件夹都对应着一个 web 应用,所以可以在浏览器中分别访问
http://127.0.0.1:8080/docs/
http://127.0.0.1:8080/examples/
http://127.0.0.1:8080/host-manager/
http://127.0.0.1:8080/manager/

Tomcat 文件夹下的 webapps,是 web applications 的简称,意思是用来存放 web 应用的文件夹。

文件夹的名称和 url 有对应关系,除了 ROOT 表示是根应用,不需要前缀外,其余都是跟着文件夹名称。

如果 url 以文件夹结尾,默认访问的是 index.html 或者 index.jsp

将我们的web目录复制到webapps目录下之后,命名为
hello

则可以通过局域网访问我们的资源
/hello/profile.html

其中,URL的 /hello 部分被称为 Application Path 或者 Context Path;/profile.html 被称为 Servlet
Path。

### 解决 Tomcat 部署时找到程序包的问题 当遇到 Tomcat 部署时找到程序包的情况,通常是因为类路径配置正确或依赖项未被正确加载。以下是详细的排查和解决方法: #### 1. 检查 WAR 文件结构 确保打包后的 WAR 文件包含了所有的必要资源和库文件。WAR 文件应具有标准的目录结构,其中 `WEB-INF/lib` 目录下应该放置所有所需的 JAR 包。 ```bash your-app.war/ ├── WEB-INF/ │ ├── classes/ # 编译后的 Java 类文件 │ └── lib/ # 外部依赖的 jar 包 └── index.html # 或其他静态资源 ``` #### 2. 确认 Maven 构建过程无误 对于基于 Maven 的项目,在构建过程中可能会遗漏某些依赖关系。可以通过执行以下命令来重新下载并更新本地仓库中的依赖项[^3]。 ```shell mvn clean install -U ``` 这会强制刷新过期的远程存储库元数据以及任何丢失或损坏的艺术品。 #### 3. 修改 pom.xml 中 `<scope>` 设置 有时开发人员会在 POM 文件里设置一些依赖范围为 `provided`, 这意味着这些依赖仅用于编译阶段而不会被打入最终产物中。如果目标环境确实需要它们,则需调整相应部分以包含实际运行所需的内容。 ```xml <dependency> <groupId>com.example</groupId> <artifactId>example-artifact</artifactId> <version>1.0-SNAPSHOT</version> <!-- 如果该依赖在生产环境中也是必需的话 --> <scope>compile</scope> </dependency> ``` #### 4. 调整 IDE 设置 (针对 IntelliJ IDEA 用户) IntelliJ IDEA 可能未能自动识别外部库的位置。前往 **File -> Project Structure**, 添加缺失的库至 Global Libraries 下面;另外还需确认 Artifact Configuration 是否已经指定了正确的输出布局[^4]. #### 5. 查看日志信息 仔细阅读 catalina.out 和 localhost.<date>.log 日志文件可以帮助定位具体原因所在。特别是关于 ClassNotFound 错误的信息能够提供重要线索。 ```java // 示例异常堆栈跟踪片段 Caused by: java.lang.ClassNotFoundException: com.yourpackage.YourClass at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1987) ... ``` 通过以上措施一般可以有效解决问题。过具体情况还需要根据项目的实际情况做适当调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值