setenv.sh在一个单独的tomcat catalina基地

时间:2010-11-09 11:48:01

标签: java tomcat servlets setenv catalina

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

  

CONF   日志   服务器   web应用   工作

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

我现在需要在bin目录中添加一个setenv.sh文件,但我不希望它被所有catalina基础使用。要做到这一点,我想在catalina_base上添加bin diretory,我想要获取setenv.sh文件。 bin目录只包含setenv.sh文件,没有其他内容。其他所有内容仍然在$ CATALINA_HOME / bin /(即startup.sh catalina.sh shutdown.sh等)

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

1 个答案:

答案 0 :(得分: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。目录结构可以是:

/apps/APP1
   bin
      start.sh
      stop.sh
   conf
   logs
   server
   webapps
   work
/apps/APP2
   bin
      start.sh
      stop.sh
   conf
   logs
   server
   webapps
   work
/opt/apache-tomcat-xxx
   all the standard tomcat files...
/opt/java-1.6
   all the standard java files...

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

export JAVA_HOME=/opt/java-1.6
export CATALINA_HOME=/opt/apache-tomcat-xxx
export CATALINA_BASE=/apps/APP1
export CATALINA_PID=${CATALINA_BASE}/temp/app1.pid.file
export CATALINA_OPTS=-Dmy.fancy.variable=hello

${CATALINA_HOME}/bin/catalina.sh start

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