Предоставление значения catalina.home в аргументах сервера wildfly - PullRequest
0 голосов
/ 22 апреля 2019

Я использую 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>

Я хочу предоставить значение catalina.home в аргументах внутри standalone.conf.bat, используя значение переменной JBOSS_LOG_DIR , используяэта команда

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:\Softwares\wildfly_2\standalone\log\server.log -Dlogging.configuration=file:D:\Softwares\wildfly_2\standalone\configuration/logging.properties

Если я указываю здесь статический путь вместо переменной JBOSS_LOG_DIR, он работает нормально.

Также я попытался установить то же значение на JBOSS_LOG_DIR в автономно.sh (который я прокомментировал) в приведенном ниже коде:

    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 не добавляется в строку.Можете ли вы помочь мне, где все идет не так?Заранее спасибо

1 Ответ

1 голос
/ 23 апреля 2019

Если вы используете 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.Однако предыдущий вариант предпочтительнее.

...