【问题标题】:how to setup environment variable CA_DATA in tomcat config如何在 tomcat config 中设置环境变量 CA_DATA
【发布时间】:2013-08-02 16:35:27
【问题描述】:

我正在尝试在我的 Java Web 项目中实现和访问一个本地 API(.so),它会查找 CA_DATA 变量。

 set it in .bashrc as -
export CA_DATA=/app/IstCorrectAddress/Data;

echo 时我可以在路径中看到这个,但问题是当部署在 tomcat 服务器上的 .war 看不到变量时。

我想在 tomcat 配置中的某个地方设置这个环境变量,这可以通过启动时的战争看到。请建议在哪里以及如何设置它以便它可以访问。

请提出建议。

【问题讨论】:

  • 很难说。你是如何运行Tomcat的?使用默认的 Unix 启动脚本? tomcat 以谁的身份运行?您具体使用的是哪个操作系统?
  • 直接从 bin/startup.sh 运行 tomcat .tomcat 在 root 用户下运行 .Os 是 linux(64 位)。设置环境变量应该相同(如果不作为服务运行 etc/init.d ),对吗?我不确定是否发布了这个问题,但我们有办法在 /app/apache-tomcat-7.0.41/conf/Catalina/localhost 位置进行设置。
  • 在这种情况下,您可能需要查看startup.sh 并查看它是否从某个地方读取变量。通常有一个像/etc/default/tomcat 这样脚本导入的文件。如果 tomcat 没有运行,则设置您的环境,因为您不会做太多事情......

标签: java linux tomcat environment-variables production-environment


【解决方案1】:

看起来您正在使用 JNI(此处为 java 本机接口)。如果要给tomcat添加库,我的做法是在setevn.sh或者setenv.sh中设置,看你在哪个环境

在这个文件中,你将拥有这个

set CATALINA_OPTS=%CATALINA_OPTS% /<path to proerties>/xyz.so

在 catalina.bat 中,我会有这些行

rem Get standard environment variables
if "%CATALINA_BASE%" == "" goto gotSetenvHome
if exist "%CATALINA_BASE%\bin\setenv.bat" call "%CATALINA_BASE%\bin\setenv.bat"
goto gotSetenvBase
:gotSetenvHome
if exist "%CATALINA_HOME%\bin\setenv.bat" call "%CATALINA_HOME%\bin\setenv.bat"
:gotSetenvBase

您可以在 profile.bash 中设置路径。希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2011-09-21
    • 1970-01-01
    • 2022-12-19
    • 2015-02-11
    • 1970-01-01
    • 2015-10-21
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多