Настройка JAVA_OPTS при установке Tomcat в качестве службы Windows - PullRequest
0 голосов
/ 27 февраля 2019

Я запускаю несколько экземпляров Tomcat на одном хосте и установил их как службы Windows.Конечно, это с отдельными портами для каждого экземпляра Tomcat.Теперь я пытаюсь извлечь номера портов из файла server.xml и передать их в качестве параметров JVM, чтобы файл server.xml выглядел одинаково для всех экземпляров Tomcat.В настоящее время порт Connector в моем файле server.xml для каждого экземпляра выглядит следующим образом:

Экземпляр 1

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

Экземпляр 2

<Connector port="8180" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

и я пытаюсь сделать его похожим на

<Connector port="${port.http}" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

Как уже упоминалось в этом ответе , я могу отредактировать параметры вручную, добавив параметр -Dport.http=8080 или-Dport.http=8180 и работает нормально, но мне нужно, чтобы этот параметр JVM был установлен, когда Tomcat установлен в качестве службы Windows.

Ниже приведено содержимое файла .bat, с которым я работаюустановите Tomcat instance1 в качестве службы Windows (то же самое для instance2, за исключением CATALINA_BASE, порта и имени службы).Как вы видите, я также пытаюсь установить JAVA_OPTS до его установки в качестве службы, но мне, похоже, не повезло с этим.Я также попробовал это с двойными кавычками как CALL SET "JAVA_OPTS=-Dport.http=8080" и CALL SET JAVA_OPTS="-Dport.http=8080"

CALL SET JAVA_HOME=D:\Java
CALL SET CATALINA_BASE=D:\instance1
CALL SET JAVA_OPTS=-Dport.http=8080
CALL CD %CATALINA_HOME%\bin
service install instance1

Может кто-нибудь помочь, пожалуйста?

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

В конце концов, я мог решить эту проблему, установив JvmArgs в командном файле, который я использую для установки Tomcat в качестве службы Windows.Содержимое моего .bat файла выглядит следующим образом:

CALL SET JAVA_HOME=D:\Java
CALL SET CATALINA_BASE=D:\instance1
CALL SET JAVA_OPTS=-Dport.http=8080
CALL SET JvmArgs=-Dport.http=8080;-Dport.shutdown=8005 // This line did the trick
CALL CD %CATALINA_HOME%\bin
service install instance1

Я узнал об этом, когда просматривал код в файле service.bat, чтобы проверить, как установлены и найдены параметры JVM %JvmArgs%добавлено в конце, как показано ниже:

--JvmOptions "-Dcatalina.home=%CATALINA_HOME%;-Dcatalina.base=%CATALINA_BASE%;-D%ENDORSED_PROP%=%CATALINA_HOME%\endorsed;-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties;%JvmArgs%" ^

Надеюсь, это поможет кому-то, ищущему подобную конфигурацию:)

0 голосов
/ 27 февраля 2019

Если вы хотите установить -D опции в качестве состояний в заголовке, чем вас интересует --JvmOptions https://tomcat.apache.org/tomcat-7.0-doc/windows-service-howto.html

например

Install the service named 'Tomcat7'
C:\> tomcat7 //IS//Tomcat7 --DisplayName="Apache Tomcat 7" ^
     --Install="C:\Program Files\Tomcat\bin\tomcat7.exe" --Jvm=auto ^
     --StartMode=jvm --StopMode=jvm ^
     --JvmOptions -DwhateverHere
     --StartClass=org.apache.catalina.startup.Bootstrap --StartParams=start ^
     --StopClass=org.apache.catalina.startup.Bootstrap --StopParams=stop
...