2

目前我有几个配置了以下目录的 catalina 基地,

conf 日志服务器 webapps 工作

bin、lib 和 common 目录都还在 $CATALINA_HOME 中。

我现在需要在 bin 目录中添加一个 setenv.sh 文件,但我不希望它被所有 catalina 基地使用。为此,我正在考虑在我想要获取 setenv.sh 文件的 catalina_base 上添加一个 bin 目录。bin 目录将只包含 setenv.sh 文件,没有其他内容。其他所有内容仍将在 $CATALINA_HOME/bin/ 中(即 startup.sh catalina.sh shutdown.sh 等)

这样做有什么副作用吗?tomcat 可以在启动过程中同时使用 $CATALINA_BASE/bin/ 和 $CATALINA_HOME/bin 吗?

4

1 回答 1

5

如果您提供带有 setenv.sh 的 bin,我还没有测试过它的行为。但这是我从一个 CATALINA_HOME 配置许多运行不同实例的 tomcat 应用程序的方式。

如果您有该配置,那么您可能有自己的启动脚本运行 catalina.sh。带有选项 JAVA_HOME、CATALINA_HOME、CATALINA_BASE,可能还有 CATALINA_PID。

因此,无论您需要更改或添加 setenv.sh,只需更改您自己的启动脚本即可。或者创建将在启动脚本开始时调用的 setenv.sh。并将其放在您自己的 bin 目录中。

我假设它是 linux (在 Windows 中它会类似)。所以你可以有几个应用程序,我们称之为APP1,APP2。两者都有:bin conf logs server webapps work. 目录结构可以是:

/应用程序/APP1
   斌
      启动.sh
      停止.sh
   会议
   日志
   服务器
   网络应用
   工作
/应用程序/APP2
   斌
      启动.sh
      停止.sh
   会议
   日志
   服务器
   网络应用
   工作
/opt/apache-tomcat-xxx
   所有标准的tomcat文件...
/opt/java-1.6
   所有标准的java文件...

在 APP1 的 start.sh 中,您可以设置:JAVA_HOME、CATALINA_HOME、CATALINA_BASE,可能还有 CATALINA_PID、CATALINA_OPTS。

导出 JAVA_HOME=/opt/java-1.6
出口 CATALINA_HOME=/opt/apache-tomcat-xxx
导出 CATALINA_BASE=/apps/APP1
导出 CATALINA_PID=${CATALINA_BASE}/temp/app1.pid.file
出口 CATALINA_OPTS=-Dmy.fancy.variable=你好

${CATALINA_HOME}/bin/catalina.sh 开始

停止将几乎相同。您只需将开始更改为停止。下一步是将变量定义移动到某个文件,比如 config.ini,然后您必须在 start.sh 和 stop.sh 中获取该文件。在 Windows 中,您需要将导出更改为设置。在不同的 shell(如果不是 bash)中,您需要按照说明进行操作。

于 2010-11-24T12:30:52.040 回答