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

Tomcat版本:8.5.5
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="" />


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

参考文献:

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"/> -->

参考文献:

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值。

参考文献:

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

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

systemctl disable firewalld

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&useUnicode=true&characterEncoding=UTF8"
         />

参考文献:

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;

参考文献:

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: =': 不是有效的标识符`