Параметры JVM при запуске Tomcat8 с помощью startup.bat в Windows - PullRequest
0 голосов
/ 08 ноября 2019

Я хочу предоставить некоторые параметры JVM для моего приложения. Приложение представляет собой веб-приложение и упаковано как война. Я использую Tomcat8 для развертывания этой войны. Я хочу предоставить опции JVM при запуске tomcat с использованием файла statup.bat.

Я могу успешно запустить приложение, используя eclipse. Конфигурация сервера eclipse предусматривает предоставление аргументов JVM с использованием конфигурации запуска.

Я попробовал ниже способы предоставления опций JVM.

  1. Использование setenv.bat в каталоге bin с командой set JAVA_OPTS=".........". пример - я попробовал приведенные ниже команды в файле setenv.bat отдельно.
    set JAVA_OPTS="-Ddp.registry.local=false -Ddp.registry.logon.id=dpconf -Ddp.registry.logon.pwd=password-Ddp.registry.host.address=ltest16.sto1.3s.intern -Ddp.registry.appid=1234 -Ddp.registry.execunit=BillingDataProvider -Ddp.registry.instance=bdp -Ddp.registry.instance.lowercase=bdp -Ddp.registry.host.port=3700 -Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger -Djava.util.prefs.PreferencesFactory=com.smarttrust.common.mechanism.prefs.RegistryJasapPreferencesFactory -Ddp.log.root=C:/Users/dir/softools/apache-tomcat-8.0.5/logs -Ddp.server.log.root=C:/Users/dir/softools/apache-tomcat-8.0.5/logs -Dota.sc.log.root=C:/Users/dir/softools/apache-tomcat-8.0.5/logs -Dlog4j.configuration=file:C:/Users/dir/softools/apache-tomcat-8.0.5/logs/log4j.xml -Djava.util.logging.config.file=C:/Users/dir/softools/apache-tomcat-8.0.5/logs/bdp-log.properties"
    set CATALINA_OPTS="-Ddp.registry.local=false -Ddp.registry.logon.id=dpconf -Ddp.registry.logon.pwd=password -Ddp.registry.host.address=ltest16.sto1.3s.intern -Ddp.registry.appid=1234 -Ddp.registry.execunit=BillingDataProvider -Ddp.registry.instance=bdp -Ddp.registry.instance.lowercase=bdp -Ddp.registry.host.port=3700 -Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger -Djava.util.prefs.PreferencesFactory=com.smarttrust.common.mechanism.prefs.RegistryJasapPreferencesFactory -Ddp.log.root=C:/Users/dir/softools/apache-tomcat-8.0.5/logs -Ddp.server.log.root=C:/Users/dir/softools/apache-tomcat-8.0.5/logs -Dota.sc.log.root=C:/Users/dir/softools/apache-tomcat-8.0.5/logs -Dlog4j.configuration=file:C:/Users/dir/softools/apache-tomcat-8.0.5/logs/log4j.xml -Djava.util.logging.config.file=C:/Users/dir/softools/apache-tomcat-8.0.5/logs/bdp-log.properties"

экспорт JAVA_OPTS, такой как set JAVA_OPTS=".....", в командной строке перед запуском startup.bat. Приведенные выше команды экспортируются в командной строке перед запуском startup.bat.

Использование, например, файла context.xml -

        <context>
         .....................
        <Environment name="dp.registry.local" value="false" type="java.lang.String"/>
         ........................
        </context>

Но не повезло,Я не уверен, какую ошибку я делаю.

Ответы [ 2 ]

0 голосов
/ 10 ноября 2019

Проблема с двойными кавычками. При экспорте из командной строки не используйте двойные кавычки. Просто установите JAVA_OPTS = -D ..... -D .... Список параметров, разделенных пробелами.

Если вы откроете java_opts из catlina.bat, это даст вам ясную картину.

0 голосов
/ 08 ноября 2019

Рекомендуется использовать CATALINA_OPTS, см. Комментарии в catalina.bat.

Во-вторых, опции виртуальной машины должны иметь индивидуальный префикс -D, например:

Оболочка Linux / Unix:

CATALINA_OPTS="-Dcom.sun.management.jmxremote=true \
               -Dcom.sun.management.jmxremote.ssl=false \
               -Dcom.sun.management.jmxremote.authenticate=false \
               -Djava.rmi.server.hostname=192.168.40.10"

Как отмечено в комментариях, многострочный escape-символ в пакете Windows - ^, и по какой-то причине нет необходимости добавлять двойные кавычки.

Windows bat / cmd

CATALINA_OPTS=-Dcom.sun.management.jmxremote=true ^
               -Dcom.sun.management.jmxremote.ssl=false ^
               -Dcom.sun.management.jmxremote.authenticate=false ^
               -Djava.rmi.server.hostname=192.168.40.10
...