更新:我安装了32位JDK,服务现在开始正常。不知道为什么。失败的机器是64位...
Update2:因此安装32位JDK将允许安装服务,但solr将无法运行。日志中有StackOverflowException和NullPointer Excpetions。
我正在尝试在Windows 7 64位上运行Jetty作为服务。我让它在一台非常相似的机器上运行就好了,但是在第二天我遇到了错误,我无法解决。
该服务安装正常,但是当您尝试启动它时,您将在控制台中收到消息:Jetty6-Service服务已启动,但无法启动。
这是jetty-service.log中的相关内容:
STATUS | wrapper | 2011/02/16 12:50:07 | Starting the Jetty6-Service service...
STATUS | wrapper | 2011/02/16 12:50:07 | --> Wrapper Started as Service
DEBUG | wrapper | 2011/02/16 12:50:07 | Using tick timer.
DEBUG | wrapperp | 2011/02/16 12:50:07 | server listening on port 32000.
STATUS | wrapper | 2011/02/16 12:50:07 | Launching a JVM...
DEBUG | wrapper | 2011/02/16 12:50:07 | command: "java" -Djetty.home=../ -Djetty.logs=../logs -Dsolr.solr.home=C:/solr/ -Xms5m -Xmx64m -Djava.library.path="../lib/win32/" -classpath "../lib/win32/jetty-win32-service-java-6.1.26.jar;../lib/win32/wrapper.jar;../lib/jetty-6.1.3.jar;../lib/jetty-util-6.1.3.jar;../lib/servlet-api-2.5-6.1.3.jar;../start.jar" -Dwrapper.key="c5CIhIjsO0gmMcTE" -Dwrapper.port=32000 -Dwrapper.jvm.port.min=31000 -Dwrapper.jvm.port.max=31999 -Dwrapper.debug="TRUE" -Dwrapper.pid=4708 -Dwrapper.version="3.2.3" -Dwrapper.native_library="wrapper" -Dwrapper.service="TRUE" -Dwrapper.cpu.timeout="10" -Dwrapper.jvmid=1 org.mortbay.jetty.win32service.JettyServiceWrapperListener ../etc/jetty.xml
FATAL | wrapper | 2011/02/16 12:50:07 | Unable to execute Java command. The system cannot find the file specified. (0x2)
FATAL | wrapper | 2011/02/16 12:50:07 | "java" -Djetty.home=../ -Djetty.logs=../logs -Dsolr.solr.home=C:/solr/ -Xms5m -Xmx64m -Djava.library.path="../lib/win32/" -classpath "../lib/win32/jetty-win32-service-java-6.1.26.jar;../lib/win32/wrapper.jar;../lib/jetty-6.1.3.jar;../lib/jetty-util-6.1.3.jar;../lib/servlet-api-2.5-6.1.3.jar;../start.jar" -Dwrapper.key="c5CIhIjsO0gmMcTE" -Dwrapper.port=32000 -Dwrapper.jvm.port.min=31000 -Dwrapper.jvm.port.max=31999 -Dwrapper.debug="TRUE" -Dwrapper.pid=4708 -Dwrapper.version="3.2.3" -Dwrapper.native_library="wrapper" -Dwrapper.service="TRUE" -Dwrapper.cpu.timeout="10" -Dwrapper.jvmid=1 org.mortbay.jetty.win32service.JettyServiceWrapperListener ../etc/jetty.xml
FATAL | wrapper | 2011/02/16 12:50:07 | Critical error: wait for JVM process failed
ERROR | wrapper | 2011/02/16 12:50:09 | The Jetty6-Service service was launched, but failed to start.
我知道这两台机器之间的一个区别是,那台不能正常运行的机器已经安装了Tomcat,它已经不再安装了。
我尝试了以下内容:
如果有人正在寻找有关将Jetty作为服务运行的更多信息,请查看:
答案 0 :(得分:1)
在某些x64机器上,Java Service Wrapper作为Jetty Service的一部分包含在内似乎存在问题。
Java Service Wrapper的社区版本不支持x64。如果我在他们的网站上使用方法4下载并合并标准版或专业版,那么事情就会奏效。
答案 1 :(得分:1)
这对我有用:
已添加到bin\jetty-service.conf:
wrapper.java.command=%JAVA_HOME%\jre\bin\java.exe
请注意,系统中的JAVA_HOME
已设置:
JAVA_HOME=C:\Java\jdk1.6.0_35
我正在使用64位JVM:
C:\>java -version
java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10)
Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01, mixed mode)
答案 2 :(得分:0)
我看起来你的路径设置不正确。
您应该可以从命令行单独运行此命令(从上面复制)
“java”-Djetty.home = .. / -Djetty.logs = .. / logs -Dsolr.solr.home = C:/ solr / -Xms5m -Xmx64m -Djava.library.path =“../ lib / win32 /“ - classpath”../lib/win32/jetty-win32-service-java-6.1.26.jar;../lib/win32/wrapper.jar ;../lib/jetty-6.1.3 .jar; ../ lib / jetty-util-6.1.3.jar; ../ lib / servlet-api-2.5-6.1.3.jar; ../ start.jar“-Dwrapper.key =”c5CIhIjsO0gmMcTE“ -Dwrapper.port = 32000 -Dwrapper.jvm.port.min = 31000 -Dwrapper.jvm.port.max = 31999 -Dwrapper.debug =“TRUE”-Dwrapper.pid = 4708 -Dwrapper.version =“3.2.3” -Dwrapper.native_library =“wrapper”-Dwrapper.service =“TRUE”-Dwrapper.cpu.timeout =“10”-Dwrapper.jvmid = 1 org.mortbay.jetty.win32service.JettyServiceWrapperListener ../ etc / jetty.xml < / p>
它应该告诉你这样做时的问题。只需从我假设的相同目录/ bin运行它。
java版jar是否与命令中的版本相同(6.1.26)?
答案 3 :(得分:0)
我遇到service jetty start
得到错误:
在Java Home中找不到VM
解决方案是改变
/etc/default/jetty
到
JAVA_HOME=/usr/lib/jvm/java-7-oracle/jre