Запуск Jetty 7 в качестве службы Windows - PullRequest
24 голосов
/ 19 января 2010

Поддерживает ли Jetty 7 поддержку запуска в качестве службы с использованием Java Service Wrapper? Какие варианты у меня сейчас есть?

Ответы [ 7 ]

25 голосов
/ 06 июля 2011

@ glb, спасибо за указание на Apache commons-daemon Procrun.
Он отлично работает для меня в Windows 7 64-бит, вот как я его настроил.

Для получения дополнительной информации см. Страницу

  • procrun по ссылке с @glb
  • экран справки о пристани> java -jar start.jar-помощь

REM 1. Open command prompt as Administrator

mkdir C:\java\apache-commons-daemon
REM 2. Download commons-daemon binaries for windows to directory above from
REM      http://www.apache.org/dist/commons/daemon/binaries/windows/commons-daemon-1.0.15-bin-windows.zip
REM 3. unzip which will create C:\java\apache-commons-daemon\commons-daemon-1.0.5-bin-windows

mkdir C:\java\jetty
REM 4. Download jetty to directory above from
REM      http://download.eclipse.org/jetty/7.4.2.v20110526/dist/jetty-distribution-7.4.2.v20110526.zip 
REM 5. install / unzip which will create C:\java\jetty\jetty-distribution-7.4.2.v20110526

REM 6. Verify that jetty can be started
cd C:\java\jetty\jetty-distribution-7.4.2.v20110526
java -jar start.jar
REM     Look for any obvious errors on the console
REM     Open a browser at http://localhost:8080/
REM     You should be presented with the Jetty Start Page,
REM      and be able to execute the Hello World Servlet
REM     OK, that's enough,
REM      come back to the command prompt and ctrl-C to stop the jetty server

REM 7. Copy and rename commons-daemon binaries into the JETTY_HOME directory structure
REM     Note that the GUI manager is copied to JETTY_HOME,
REM      and the service exe is copied to JETTY_HOME\bin
REM     Note that both binaries get the same target name,
REM      but are placed in different directories
REM     This is just makes it easier to launch the GUI manager
REM      by not having to provide command line arguments
REM     Note that I have selected the amd64\prunsrv.exe as the service exe,
REM      I am running on Windows 7 64 bit Intel i7 Xeon
cd C:\java\jetty\jetty-distribution-7.4.2.v20110526
copy \java\apache-commons-daemon\commons-daemon-1.0.5-bin-windows\prunmgr.exe .\JettyService.exe
copy \java\apache-commons-daemon\commons-daemon-1.0.5-bin-windows\amd64\prunsrv.exe .\bin\JettyService.exe

REM 8. Time to install the service
bin\JettyService //IS//JettyService --DisplayName="Jetty Service" --Install=C:\java\jetty\jetty-distribution-7.4.2.v20110526\bin\JettyService.exe --LogPath=C:\java\jetty\jetty-distribution-7.4.2.v20110526\logs --LogLevel=Debug --StdOutput=auto --StdError=auto --StartMode=Java --StopMode=Java --Jvm=auto ++JvmOptions=-Djetty.home=C:\java\jetty\jetty-distribution-7.4.2.v20110526 ++JvmOptions=-DSTOP.PORT=8087 ++JvmOptions=-DSTOP.KEY=downB0y ++JvmOptions=-Djetty.logs=C:\java\jetty\jetty-distribution-7.4.2.v20110526\logs ++JvmOptions=-Dorg.eclipse.jetty.util.log.SOURCE=true ++JvmOptions=-XX:MaxPermSize=128M ++JvmOptions=-XX:+CMSClassUnloadingEnabled ++JvmOptions=-XX:+CMSPermGenSweepingEnabled --Classpath=C:\java\jetty\jetty-distribution-7.4.2.v20110526\start.jar --StartClass=org.eclipse.jetty.start.Main ++StartParams=OPTIONS=All ++StartParams=C:\java\jetty\jetty-distribution-7.4.2.v20110526\etc\jetty.xml ++StartParams=C:\java\jetty\jetty-distribution-7.4.2.v20110526\etc\jetty-deploy.xml ++StartParams=C:\java\jetty\jetty-distribution-7.4.2.v20110526\etc\jetty-webapps.xml ++StartParams=C:\java\jetty\jetty-distribution-7.4.2.v20110526\etc\jetty-contexts.xml ++StartParams=C:\java\jetty\jetty-distribution-7.4.2.v20110526\etc\jetty-testrealm.xml --StopClass=org.eclipse.jetty.start.Main ++StopParams=--stop

REM 9. Test that the service starts at the command prompt
bin\JettyService //TS

REM 10. To delete the service uncomment the line below
REM bin\JettyService //DS

REM 11. Now launch the GUI manager to check the parameter settings
JettyService.exe

REM You can use the GUI to start and stop the service, and to change the settings
REM If you want the GUI exe to have a different name to the service exe,
REM   then close the GUI and uncomment and run the line below
REM ren JettyService.exe JettyServiceMgr.exe
REM To launch the renamed GUI uncomment and run the line below
REM JettyServiceMgr.exe //ES//JettyService  

готово!

3 голосов
/ 03 сентября 2010

Взгляните на Procrun от Apache Commons. Вы хотите просмотреть область загрузки собственных двоичных файлов, чтобы получить двоичные файлы Windows.

3 голосов
/ 11 августа 2010

В последней стабильной версии Java Service Wrapper (JSW 3.4.1) есть метод интеграции WrapperJarApp:

Это часть моей конфигурации:

wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperJarApp
wrapper.java.classpath.1=%WRAPPER_HOME%/lib/*.jar
wrapper.java.classpath.2=%JETTY_HOME%/lib/*.jar
wrapper.java.classpath.3=%JETTY_HOME%/start.jar
wrapper.java.library.path.1=%WRAPPER_HOME%/lib
wrapper.app.parameter.1=%JETTY_HOME%/start.jar
wrapper.app.parameter.2=%JETTY_HOME%/etc/jetty.xml
# other config params as needed
2 голосов
/ 18 августа 2014

Вы можете работать как служба Windows. Jetty может использоваться для exewrap.
Пакеты «все в одном» для Jetty Windows Service также распространяются.

http://exewrap.sourceforge.jp/jetty/

2 голосов
/ 14 февраля 2012

У меня была проблема с запуском кода @ crowne для установки службы (у меня запущена Jetty 8.1.0).Просто нужно изменить -StartMode=Java --StopMode=Java на -StartMode=jvm --StopMode=jvm и удалить ++JvmOptions=-XX:+CMSPermGenSweepingEnabled.

После этого я создал create_jetty_service.bat в папке jetty / bin и запустил оттуда файл:

set jetty_home = C:\java\jetty\jetty-hightide-8.1.0.v20120127

JettyService //IS//JettyService --DisplayName="Jetty Service" ^
--Install=%jetty_home%\bin\JettyService.exe ^
--LogPath=%jetty_home%\logs ^
--LogLevel=Debug --StdOutput=auto --StdError=auto --StartMode=jvm --StopMode=jvm --Jvm=auto ^
++JvmOptions=-Djetty.home=%jetty_home% ^
++JvmOptions=-DSTOP.PORT=8087 ^
++JvmOptions=-DSTOP.KEY=downB0y ^
++JvmOptions=-Djetty.logs=%jetty_home%\logs ^
++JvmOptions=-Dorg.eclipse.jetty.util.log.SOURCE=true ^
++JvmOptions=-XX:MaxPermSize=256M ^
++JvmOptions=-XX:+CMSClassUnloadingEnabled ^
--Classpath=%jetty_home%\start.jar ^
--StartClass=org.eclipse.jetty.start.Main ^
++StartParams=OPTIONS=All ^
++StartParams=%jetty_home%\etc\jetty.xml ^
++StartParams=%jetty_home%\etc\jetty-deploy.xml ^
++StartParams=%jetty_home%\etc\jetty-webapps.xml ^
++StartParams=%jetty_home%\etc\jetty-contexts.xml ^
++StartParams=%jetty_home%\etc\jetty-testrealm.xml ^
--StopClass=org.eclipse.jetty.start.Main ++StopParams=--stop

Не забудьте запустить cmd.exe от имени администратора, чтобы команда вступила в силу.

2 голосов
/ 26 октября 2010

Вы можете получить src от: http://svn.codehaus.org/jetty/jetty/branches/jetty-7/jetty-win32/ и собрать его самостоятельно.

Но я вручную установил упаковщик как любую «стандартную» установку оболочки.

Взял оригиналФайл Jetty-Service.conf и изменился:

И добавил…

wrapper.app.parameter.1 = org.eclipse.jetty.start.Main <- Основной класс wrapper.app.parameter.2 = .. / etc / jetty.xml wrapper.app.parameter.x = .. / etc / jetty-x.xml <- любые дополнительные файлы конфигурации, которые вы хотите включить… wrapper.app.parameter.y = .. / etc / jetty-y.xml </p>

Кажется, что все в порядке, и, кажется, тоже корректно выключается.

1 голос
/ 03 сентября 2014

Если вы находитесь в какой-то закрытой среде и вам нужно оставаться в рамках предоставленного Microsoft набора инструментов, тогда srvany, instsrv и sc ваши друзья.К сожалению, это часто включает внесение изменений в реестр.Приятно то, что он очень гибкий.

Вот что я недавно сделал для автоматического запуска сервера-концентратора Selenium Grid.


Скопируйте srvany.exe в c:\tools\srvany\srvany.exe

Откройте окно cmd с правами администратора и запустите:

$ cd C:\tools\srvany
$ sc create "Selenium Grid Hub Server" binPath= c:\tools\srvany\srvany.exe DisplayName= "Selenium Grid Hub Server"

RegEdit

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Selenium Grid Hub Server

Добавьте новый ключ с именем Parameters Подэтот ключ, добавьте 3 новых строковых значения с именем:

  • Application => ${JAVA_HOME}/bin/java.exe
  • AppParameters => -jar selenium-server-standalone-2.42.2.jar -role hub
  • AppDirectory=> C:\tools\selenium

Кредит для этого идет в http://codeforjava.blogspot.com/2010/12/run-java-application-as-windows-nt.html

...