Ошибка запуска Jetty-Service (Solr) - PullRequest
6 голосов
/ 16 февраля 2011

Обновление: Я установил 32-битный JDK, и служба теперь работает нормально. Не знаю почему, хотя. Машина, на которой он отказывался, была 64-битной ...

Обновление 2: Таким образом, установка 32-битного JDK позволит установить службу, но solr не запустится. В журналах есть исключения StackOverflowException и NullPointer.

Я пытаюсь запустить Jetty в качестве службы в Windows 7 64bit. У меня он работает на очень похожей машине, но на втором я получаю ошибки, которые мне не удалось устранить.

Служба устанавливается нормально, однако при попытке ее запуска в консоли появляется сообщение: служба 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

Ответы [ 4 ]

1 голос
/ 21 февраля 2011

Кажется, есть проблемы с Java Service Wrapper, включенным как часть Сервиса Jetty на некоторых машинах x64.

Общественная версия Java Service Wrapper не поддерживает x64. Если я скачаю и включу стандартное или профессиональное издание, используя метод 4, на их веб-сайте, то все будет работать.

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

1 голос
/ 09 сентября 2012

Это сработало для меня:

Добавлено в начало 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)
0 голосов
/ 22 сентября 2012

У меня была проблема с service jetty start

Получена ошибка:

Не удается найти виртуальную машину в Java Home

Решение было изменить

/etc/default/jetty

до

JAVA_HOME=/usr/lib/jvm/java-7-oracle/jre
0 голосов
/ 18 февраля 2011

Похоже, ваши пути не настроены правильно.

Вы должны быть в состоянии запустить эту команду самостоятельно из командной строки (скопировано сверху)

"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.x 1005 *

Это должно сказать вам, в чем проблема, когда вы делаете это. Просто запустите его из того же каталога / bin, который я предполагаю.

Является ли jav-версия jar такой же, как версия, которую вы используете в вашей команде (6.1.26)?

...