部署多个Tomcat时遇到的坑

本博客链接:https://security.blog.csdn.net/article/details/107368597

根据需求,在一台服务器上部署了多个tomcat,每个Tomcat设置不同端口,将遇到的一些坑记录一下:

Tomcat版本:8.5.57
Mysql版本:8.0.20
操作系统:centos 7.8

说明:每个Tomcat需要修改设置不同的端口,这种基础问题就不说了。由于这是我排完错之后才写的,有些已经不记得报错细节了,但记得解决方案。

1、启动时报错

The AJP Connector is configured with secretRequired="true“

解决方案:

修改每个Tomcat的配置文件,在/conf/server.xml中添加设置

原设置:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

更改后的设置:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" secretRequired="" />

参考文献:https://www.cnblogs.com/zhang-yawei/p/12975326.html

2、项目启动时报错,错误细节忘记了

解决方案:

重新设置Java环境变量,已覆盖默认的环境Java环境变量:

1、执行:which java,返回:/usr/bin/java
2、执行:ls -lr /usr/bin/java,返回:/etc/alternatives/java
3、执行:ls -lrt /etc/alternatives/java,返回:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/jre/bin/java

4、执行:vim /etc/profile

JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

5、配置生效:source /etc/profile

参考文献:https://www.cnblogs.com/juihai/p/11710381.html

3、Tomcat启动后报错

报如下错误:

java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]

解决方案:

1、验证是都是Tomcat配置的问题:

修改配置文件/conf/server.xml,注释掉以下行:

<!-- <Context path="" docBase="..." reloadable="true"/> -->

参考文献:https://www.cnblogs.com/yshyee/p/11019091.html

2、以上只是一个验证过程,如果去掉该行后正常运行,则说明不是Tomcat配置的问题。

如果Tomcat部署自己的项目,这一行终究还是要加上的,所以去掉并不能解决问题。

网上对该问题的解决方案千奇百怪,而我发现的解决方案是:我忘了加数据库,项目没有对应的数据库报了该错误。即你这个项目需要的数据库,如“test”,那就在Mysql下添加一个数据库“test”即可

4、浏览器打开后是404

解决方案:

使用新解压的ROOT文件夹,将其放在/tomcat/webapps目录下

因为Tomcat默认的页面是ROOT目录下的,有时候不小心删掉了,就会报404,这也是一个日狗问题,查了好多资料才发现是这个鬼。

5、浏览器打开后默认页面

如果想让浏览器打开后是自己开发的项目页面,怎么办

修改配置文件/conf/server.xml,添加如下行:

<Context path="" debug="0" docBase="/opt/tomcat/webapps/security" />

主要是docBase值。

参考文献:https://blog.csdn.net/spjhandsomeman/article/details/8293594

6、Tomcat启动后不能正常访问

也可能是防火墙的问题,关闭防火墙:

systemctl disable firewalld

参考文献:
https://www.cnblogs.com/aprilwang/p/10954928.html
https://blog.csdn.net/qq_40002311/article/details/88899549

7、JIRA配置对应的Mysql数据库

配置在网上一搜一大把,但是在哪儿做配置,就很迷茫了

在这里:

//在这个标签下:
<Context path="" docBase="${catalina.home}/atlassian-jira" reloadable="false">
          <Resource name="jdbc/JiraDS" auth="Container" type="javax.sql.DataSource"

         //以下是配置内容
         username="[enter db username]"
         password="[enter db password]"
         driverClassName="com.mysql.jdbc.Driver"
         url="jdbc:mysql://localhost/jiradb?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=UTF8"
         />

参考文献:https://www.cnblogs.com/kaola8023/p/7064978.html

8、mysql 8.5报错

报以下错误:

for the right syntax to use near 'identified by 'password' with grant option

解决方案:

#创建账户
create user 'root'@'localhost' identified by  'password'

#赋予权限,with grant option这个选项表示该用户可以将自己拥有的权限授权给别人
grant all privileges on *.* to 'root'@'172.16.10.203' with grant option

#改密码&授权超用户,flush privileges 命令本质上的作用是将当前user和privilige
#表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里
flush privileges;

参考文献:https://blog.csdn.net/shenhonglei1234/article/details/84786443

9、tomcat启动报错:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined

问题原因:
因为Tomcat没有找到系统的Java环境变量

解决方案:
在tomcat的bin目录下,编辑catalina.sh文件,在开头部分处加入

export JAVA_HOME=/usr/local/java/jdk1.8.0_252
export JRE_HOME=/usr/local/java/jdk1.8.0_252/jre

注意!等号两边不能有空格,否则报错:-bash: export: =': 不是有效的标识符`

参考文献:
添加环境变量:https://www.cnblogs.com/knownfreestyle/archive/2019/08/20/11383884.html
等号空格:https://blog.csdn.net/zhou_438/article/details/87731309

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

武天旭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值