windows 启动 Jetty-Service (Solr) 时出错

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/5017920/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-15 16:11:48  来源:igfitidea点击:

Error Starting Jetty-Service (Solr)

javawindowssolrjetty

提问by beckelmw

Update:I installed the 32bit JDK and the service starts fine now. No idea why though. The machine it was failing on was 64bit...

更新:我安装了 32 位 JDK,现在服务启动正常。不知道为什么。它失败的机器是64位的......

Update2:So installing the 32bit JDK will allow the service to install, but solr will not run. There is a StackOverflowException and NullPointer Excpetions in the logs.

Update2:所以安装32位JDK就可以安装服务了,但是solr不会运行。日志中有 StackOverflowException 和 NullPointer 异常。

I am trying to run Jetty as a service on Windows 7 64bit. I have it running on a very similar machine just fine, but on the second I am getting errors I have not been able to resolve.

我正在尝试在 Windows 7 64 位上将 Jetty 作为服务运行。我让它在一台非常相似的机器上运行得很好,但是在第二个我遇到了我无法解决的错误。

The service installs fine, however when you try to start it you get the message in the console: The Jetty6-Service service was launched, but failed to start.

该服务安装正常,但是当您尝试启动它时,您会在控制台中收到消息:Jetty6-Service 服务已启动,但无法启动。

enter image description here

在此处输入图片说明

This is the related contents in the jetty-service.log:

这是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.

The one difference that I know of between the two machines is that the one that is not working had Tomcat installed at one point which it no longer does.

我所知道的两台机​​器之间的一个区别是,一台无法正常工作的机器在某一点安装了 Tomcat,而现在它不再安装了。

I have tried the following:

我尝试了以下方法:

  1. Uninstalled all copies of the Java JDK and JRE
  2. Reinstalled the latest Java JDK - jdk1.6.0_24 which installs the associated JRE
  3. Tried setting JAVA_HOME to C:\Program Files\Java\jdk1.6.0_24
  4. Googled all error messages
  5. I can run java -version in the console without error
  1. 卸载 Java JDK 和 JRE 的所有副本
  2. 重新安装了最新的 Java JDK - jdk1.6.0_24,它安装了相关的 JRE
  3. 尝试将 JAVA_HOME 设置为 C:\Program Files\Java\jdk1.6.0_24
  4. 谷歌搜索所有错误信息
  5. 我可以在控制台中运行 java -version 没有错误

In case someone is looking for more information on running Jetty as a service, check out:

如果有人正在寻找有关将 Jetty 作为服务运行的更多信息,请查看:

  1. http://docs.codehaus.org/display/JETTY/Win32Wrapper
  2. http://technologyenablingbusiness.blogspot.com/2010/12/solr-on-jetty-as-windows-service.html
  1. http://docs.codehaus.org/display/JETTY/Win32Wrapper
  2. http://technologyenablingbusiness.blogspot.com/2010/12/solr-on-jetty-as-windows-service.html

采纳答案by beckelmw

There seems to be issues with the Java Service Wrapper included as part of the Jetty Service on some x64 machines.

在某些 x64 机器上,作为 Jetty 服务的一部分包含的 Java 服务包装器似乎存在问题。

The community version of the Java Service Wrapper does not support x64 though. If I download and incorporate the standard or professional edition using method 4 on their website then things will work.

但是,Java Service Wrapper 的社区版本不支持 x64。如果我在他们的网站上使用方法 4 下载并合并标准版或专业版,那么事情就会奏效。

http://wrapper.tanukisoftware.com/doc/english/download.jsp

http://wrapper.tanukisoftware.com/doc/english/download.jsp

回答by dkoper

This worked for me:

这对我有用:

Added to top of bin\jetty-service.conf:

添加到顶部 bin\jetty-service.conf:

wrapper.java.command=%JAVA_HOME%\jre\bin\java.exe

Note that JAVA_HOMEin my system is set:

请注意,JAVA_HOME在我的系统中设置:

JAVA_HOME=C:\Java\jdk1.6.0_35

and I'm using a 64 bit JVM:

我使用的是 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)

回答by javarockstars

I had problem with service jetty start

我有问题 service jetty start

got error:

得到错误:

Cannot find VM in Java Home

在 Java Home 中找不到 VM

The solution was to change

解决方案是改变

/etc/default/jetty

to

JAVA_HOME=/usr/lib/jvm/java-7-oracle/jre

回答by DaShaun

I looks like your paths aren't setup properly.

我看起来你的路径设置不正确。

You should be able to run this command alone from the command line (copied from above)

您应该能够从命令行单独运行此命令(从上面复制)

"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

"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

It should tell you what the problem is when you do that. Just run it from the same directory /bin I assume.

当你这样做时,它应该告诉你问题是什么。只需从我假设的同一目录 /bin 运行它。

Is the java version jar the same as the version you have in your comand (6.1.26)?

java 版本 jar 与您在命令中的版本 (6.1.26) 相同吗?