web-dev-qa-db-ja.com

Jetty7をWindowsサービスとして実行する

Jetty 7は、Java Service Wrapperを使用してサービスとして実行するためのサポートを終了しましたか?現在、どのようなオプションがありますか?

24
tuler

@ glb、Apachecommonsを指摘してくれてありがとう-デーモンProcrun。
Windows 764ビットでうまく機能しています。設定方法は次のとおりです。

詳細については、を参照してください

  • procrun @ glbからのリンクによるページ
  • 突堤のヘルプ画面> Java -jar start.jar --help

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  

完了しました!

25
crowne

Apache Commonsの Procrun を見てください。ネイティブバイナリのダウンロード領域を参照して、Windowsバイナリを取得することをお勧めします。

3
glb

最新の安定したバージョンの 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
3
Paul McKenzie

Srcは次の場所から取得できます: http://svn.codehaus.org/jetty/jetty/branches/jetty-7/jetty-win32/ 自分でビルドします。

しかし、ラッパーは「標準」のラッパーインストールとして手動でインストールしました。

元のJetty-Service.confファイルを取得し、変更しました。

wrapper.Java.mainclass = org.mortbay.jetty.win32service.JettyServiceWrapperListenerからwrapper.Java.mainclass = org.tanukisoftware.wrapper.WrapperSimpleAppへ

そして追加…

wrapper.app.parameter.1 = org.Eclipse.jetty.start.Main <-メインクラスwrapper.app.parameter.2 = ../ etc/jetty.xmlwrapper.app.parameter.x = ../etc /jetty-x.xml<-含めたい追加の構成ファイル…wrapper.app.parameter.y = ../ etc/jetty-y.xml

正常に起動しているようで、正常にシャットダウンするようです。

2
user432024

Jettyを使用してexewrapを実行できるWindowsサービスとして実行できます。
Jetty WindowsServiceオールインワンパッケージも配布されています。

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

2
HIRUKAWA Ryo

サービスをインストールするために@crowneのコードを実行する際に問題が発生しました(Jetty 8.1.0を実行しています)。 -StartMode=Java --StopMode=Java-StartMode=jvm --StopMode=jvmに変更し、++JvmOptions=-XX:+CMSPermGenSweepingEnabledを削除する必要があります。

その後、jetty/binフォルダーにcreate_jetty_service.batを作成し、そこからファイルを実行します。

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
Celso Dantas

少しロックダウンされた環境にあり、Microsoftが提供するツールセット内にとどまる必要がある場合は、srvanyinstsrvおよびscがお勧めです。残念ながら、レジストリの編集が含まれることがよくあります。良い点は、それが非常に柔軟であることです。

これが、SeleniumGridハブサーバーを自動起動するために最近行ったことです。


コピー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 に行きます

1
Snekse