java - 错误启动 jetty 服务 (Solr)

标签 java windows solr jetty

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

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

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

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

enter image description here

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,但现在不再安装了。

我尝试了以下方法:

  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

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

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

最佳答案

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

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

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

关于java - 错误启动 jetty 服务 (Solr),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5017920/

相关文章:

java - 在java中评估两个字符串

java - 使用 Java 流添加到现有 map

c# - 递归安全设置

java - Linux 键盘布局

solr - 如何创建 Solr 的冗余实例

java - SpringBootApplication 在 ComponentScanning 时排除其他 @SpringBootApplications

solr - 如何使用 Luke 检查 Solr 索引

java - 简单的 JPA findBy 请求需要 4 分钟,而 SQL 查询需要 365 毫秒

java - 从 ((HashLiteral.SequenceHash) (args.get(1))).keyMap 获取 HashMap

java - 无法将服务代理 (sun.jvm.hotspot.HSDB) 连接到在 Windows 7(32 位)上运行的 jvm