作为Windows服务运行Jetty 7

Jetty 7是否支持使用Java Service Wrapper作为服务运行? 我现在有什么select?

Solutions Collecting From Web of "作为Windows服务运行Jetty 7"

@glb,感谢您指出apache commons-daemon Procrun。
它在Windows 7 64位上非常适合我,这是我如何设置的。

更多信息请参阅

  • procrun页面从@glb链接
  • jetty帮助屏幕> 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 

完成了!

看看Apache Commons的Procrun 。 您需要浏览本机二进制文件下载区以获取Windows二进制文件。

在最新的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 

你可以从http://svn.codehaus.org/jetty/jetty/branches/jetty-7/jetty-win32/得到src,并自己构建它。

但我手动安装包装作为任何“标准”包装安装。

采取了原始的Jetty-Service.conf文件并且改变了:

wrapper.java.mainclass = org.mortbay.jetty.win32service.JettyServiceWrapperlistner to wrapper.java.mainclass = org.tanukisoftware.wrapper.WrapperSimpleApp

并添加…

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

似乎开始很好,似乎也优雅地关闭。

您可以运行一个Windows服务Jetty可以用来运行。
码头Windows服务一体化软件包也分发。

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

我有一个问题运行@ 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以使命令生效。

如果您处于一个锁定的环境中,并且需要保留在Microsoft提供的工具集中,那么srvanyinstsrvsc是您的朋友。 不幸的是,它通常包括进行注册表编辑。 好的是它非常灵活。

这是我最近做了一个seleniumium Grid中心服务器的自动启动。


srvany.exe复制到c:\tools\srvany\srvany.exe

以管理员身份打开cmd窗口并运行:

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

注册表编辑器

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\seleniumium 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