tomcat学习(windows和linux环境多端口部署多项目)

本文详细介绍了Tomcat的下载、安装、目录解读及启动流程,解析了常见访问错误及解决方案,包括JAVA_HOME环境变量配置和端口冲突处理。同时,深入探讨了单项目与多项目在不同端口下的部署方法,以及SpringBoot项目部署时的注意事项。

一、认识tomcat

1.下载

http://tomcat.apache.org/

2.安装

解压压缩包即可。
note:
安装目录建议不要有中文和空格

3.目录解读

tomcat目录

4.启动

  • windows环境下打开bin文件夹,双击startup.bat即可。
  • linux环境下利用 cd 命令进入bin文件夹,然后执行:
 ./startup.sh 

5.查看日志

  • windows环境下:

在这里插入图片描述

  • linux环境下:
 tail -1000 /usr/tomcat/apache-tomcat-8.5.49/logs/catalina.out 

6.访问

  • 访问自己的 localhost:8080 or 127.0.0.1:8080
  • 访问别人的 ip:端口号

6.1访问可能遇到的错误

  • 黑窗口一闪而过

原因: 没有正确配置JAVA_HOME环境变量
解决方案:正确配置JAVA_HOME环境变量

  • 端口占用导致启动报错
    1.暴力解决:找到占用的端口号,并且找到对应的进程,杀死该进程
    解决方案:
    • cmd输入命令 netstat -ano (用于查看端口是否被占用)
    • 打开任务管理器查看进程号对应进程,直接终止
      在这里插入图片描述
      在这里插入图片描述
      2.温柔解决:修改自身的端口号
      解决方案:修改conf/server.xml文件中的端口
<Connector port="8888" protocol="HTTP/1.1"
                       connectionTimeout="20000"
                       redirectPort="8445" />

note:
可将8080端口号改为80,80端口号是http默认端口,这样可以使访问时,不需要输入端口号。

7.关闭

windows环境下进入bin文件夹,双击shutdown.bat文件即可。
linux环境下,利用cd命令进入bin文件夹,执行命令:

 ./shutdown.sh 

二、tomcat部署项目

1.简单部署8080端口单项目

  • 方法一:直接将项目放到webapps目录下即可
    在这里插入图片描述
    note:
    /hello:项目的访问路径–>虚拟目录
    /hello.html:资源路径
    简化部署:将项目打成一个war包,再将war包放置到webapps目录下(运行startup后会自动解压)
  • 方法二:配置server.xml文件
    在标签体中配置
<Context docBase="D:\hello" path="/hehe" reloadable="true"  />

note:
docBase:项目存放的路径
path:虚拟目录
reloadable:设定项目有改动时,tomcat是否重新加载本项目
在这里插入图片描述

  • 方法三:在conf\Catalina\localhost创建任意名称的xml文件

在文件中编写

<Context docBase="D:\hello" />

note:
该方法中虚拟目录为xml文件的名称。

2.多端口配置多项目

server.xml文件中,一个service子元素对应一个端口,需要多端口,首先需要复制一个service元素。

2.1server文件需要更改的地方简述

在这里插入图片描述
用appbase中的字符串建文件夹,将需要部署的war包复制进去,启动startup即可。

2.2部署多个springboot项目遇到的坑

一个tomcat下启动多个springboot项目,可能会报错:

org.springframework.jmx.export.UnableToRegisterMBeanException: Unable to register MBean [HikariDataSource (null)] with key 'dataSource'; nested exception is javax.management.InstanceAlreadyExistsException: com.zaxxer.hikari:name=dataSource,type=HikariDataSource

解决方案
在每个springboot文件的配置文件中添加:

spring.jmx.enabled=false

3.配置无需war包名直接端口访问

不配置这个,运行部署的项目,需要在端口后加包名,才可正常运行项目,但是由于多了一层访问路径,可能会导致诸多问题,因此可以尝试配置无需war包名直接端口访问部署的项目。
实现方法:修改server文件
在这里插入图片描述
解读:

  <Context docBase="managerment-0.0.1-SNAPSHOT" path="" reloadable="false" />
  • 本行代码要放在对应service标签的Host标签内
  • docbase为要部署的war包名字,若war包不在对应webapps中,需要在包名前加包所在路径。
    eg:
 /usr/local/tomcat/apache-tomcat-8.5.49/webapps1/controll-0.0.1-SNAPSHOT
  • path为自定义访问路径,空即为无路径

参考资料 https://www.cnblogs.com/ramantic/p/7517544.html

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值