本博客链接: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&useUnicode=true&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