动态 ·

tomcat报错:The BASEDIR environment variable is not defined

最近,接到生产环境tomcat报错求助,在部署新tomcat的时候,出现了诡异到报错。报错信息如下:

The BASEDIR environment variable is not defined

This environment variable is needed to run this program

都说百度是最好的老师,首先去请教老师。老师及各位师兄弟千叮咛万嘱咐说是/bin目录下.sh执行脚本权限不足,需要chmod +x *.sh赋权。感谢完老师及师兄弟后,欣喜异常,又可以展现真正的技术了!

一气呵成的登录操作系统,cd到tomcat/bin目录下,心里面感谢了八百遍"老师"后,毅然决然的执行了赋权命令。执行下验证./version.sh。让人绝望的事情发生了,故障依旧。

肯定是我打开的方式不对,跑到老师及师兄那里,询问了很大一圈。都坚定的告诉我肯定是我的问题。相信老师及师兄们的判断,首先开始检查环境变量,其余都是很普通的设置,只发现了如下变量设置:

CATALINA_HOME=/home/www/tomcat1

CATALINA_HOME2=/home/www/tomcat2

依稀记得,老师和师兄弟们说过这样设置是没有问题的。为了解决部署多个tomcat的情况。依稀还记得,在配置catalina.sh中,有获取catalina_home的方式。代码如下:

# Only set CATALINA_HOME if not already set

[ -z "$CATALINA_HOME" ] && CATALINA_HOME=`cd "$PRGDIR/.." >/dev/null; pwd`

# Copy CATALINA_BASE from CATALINA_HOME if not already set

[ -z "$CATALINA_BASE" ] && CATALINA_BASE="$CATALINA_HOME"

在没有设置catalina_home的情况下,会使用当前tomcat的路径。会不会是因为在环境变量中设置了CATALINA_HOME导致新的tomcat会跳过该判断,去使用tomcat1的路径呢?

用户环境变量中,注释掉CATALINA_HOME=/home/www/tomcat1。使得环境变量生效,source .bash_profile,退出并重新登录,问题解决。

   总结

老师及师兄弟很多内容是真实存在的,但是,其中也有些是互相粘贴复制的。还是多鉴别真才实学的师兄弟,跟他多交流。

参与评论