在wildfly服务器参数中提供catalina.home值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在wildfly服务器参数中提供catalina.home值相关的知识,希望对你有一定的参考价值。

我正在使用log4j登录我的项目。在log4j.xml中,我提供了在变量catalina.home的帮助下生成的日志文件的路径。您可以在下面找到以下代码段:

  <appender name="MyAppender1" class="org.apache.log4j.DailyRollingFileAppender">
     <param name="File" value="${catalina.home}/MyLog.log" />
     <param name="DatePattern" value="'.'yyyy-MM-dd" />
     <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="[%p] %d %c %M - %m%n"/>          
     </layout>
  </appender>

我想通过使用JBOSS_LOG_DIR变量的值,通过使用此命令在standalone.conf.bat中的参数中提供catalina.home的值

set "JAVA_OPTS=%JAVA_OPTS% -Djboss.modules.system.pkgs=org.jboss.byteman -Dcatalina.home=%JBOSS_LOG_DIR%"

但是我所得到的只是在catalina.home前面的空白值,正如您在启动服务器时生成的日志中所看到的那样。

-Dprogram.name=standalone.bat -Xms64M -Xmx512M -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Dcatalina.home= -Dorg.jboss.boot.log.file=D:Softwareswildfly_2standalonelogserver.log -Dlogging.configuration=file:D:Softwareswildfly_2standaloneconfiguration/logging.properties

如果我在这里给出一个静态路径而不是JBOSS_LOG_DIR变量,它工作正常。

另外,我尝试在standalone.sh中设置相同的JBOSS_LOG_DIR(我评论过),在下面的代码中:

    while true; do
   if [ "x$LAUNCH_JBOSS_IN_BACKGROUND" = "x" ]; then
      # Execute the JVM in the foreground
      eval "$JAVA" -D"[Standalone]" $JAVA_OPTS 
        "-Dcatalina.home="$JBOSS_LOG_DIR""
         "-Dorg.jboss.boot.log.file="$JBOSS_LOG_DIR"/server.log" 
         "-Dlogging.configuration=file:"$JBOSS_CONFIG_DIR"/logging.properties" 
         #"-Dcatalina.home="$JBOSS_LOG_DIR""#
         -jar ""$JBOSS_HOME"/jboss-modules.jar" 
         $MODULE_OPTS 
         -mp ""${JBOSS_MODULEPATH}"" 
         org.jboss.as.standalone 
         -Djboss.home.dir=""$JBOSS_HOME"" 
         -Djboss.server.base.dir=""$JBOSS_BASE_DIR"" 
         "$SERVER_OPTS"
      JBOSS_STATUS=$?
   else
      # Execute the JVM in the background
      eval "$JAVA" -D"[Standalone]" $JAVA_OPTS 
        "-Dcatalina.home="$JBOSS_LOG_DIR""
         "-Dorg.jboss.boot.log.file="$JBOSS_LOG_DIR"/server.log" 
         "-Dlogging.configuration=file:"$JBOSS_CONFIG_DIR"/logging.properties" 
          #"-Dcatalina.home="$JBOSS_LOG_DIR""#
         -jar ""$JBOSS_HOME"/jboss-modules.jar" 
         $MODULE_OPTS 
         -mp ""${JBOSS_MODULEPATH}"" 
         org.jboss.as.standalone 
         -Djboss.home.dir=""$JBOSS_HOME"" 
         -Djboss.server.base.dir=""$JBOSS_BASE_DIR"" 
         "$SERVER_OPTS"

但在这种情况下,-Dcatalina.home本身并没有被添加到字符串中。你能帮助我哪里出错了吗?提前致谢

答案

如果你正在使用standalone.sh,你需要编辑JAVA_OPTS中的standalone.conf。不是那个以.bat结尾的那个是standalone.bat剧本。

你遇到的另一个问题是在执行JBOSS_LOG_DIR之后设置standalone.conf

一种选择是在jboss.server.log.dir文件中使用catalina.home属性而不是log4j.xml。另一种选择是做像JAVA_OPTS="$JAVA_OPTS -Dcatalina.home=$JBOSS_HOME/standalone/log这样的事情。但是,之前的选项将是首选。

以上是关于在wildfly服务器参数中提供catalina.home值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Wildfly 中提供自定义身份验证/授权管理器

在 Wildfly 部署中使用 CXF 库并提供 Maven 工件

配置 Wildfly 10 以使用 Jackson(作为 JSON 提供程序)

tomcat 开启jpda远程调试

在 Wildfly 中用于模块间服务注入的 OSGI 替代方案是啥?

WildFly 的内存要求