2015-01-07 6 views
2

У меня есть файл Jar, который необходимо установить в качестве службы Windows. Я использую прогр.Служба Windows - класс демона Apache не найден

Хотя сервис отображается на вкладке «Службы» в диспетчере задач, он не работает. Его в остановленном состоянии и попытке запустить его, похоже, не работает.

* В общедоступных демонах журналов я заметил, что он не может загрузить основной класс, который является «AgentApp».

Я установил 32bit jre тоже.

Упоминается здесь под содержимым файла журнала.

imageprocagent STDERR:

2015-01-07 15:47:47 Commons Daemon procrun stderr initialized 
java.lang.NoClassDefFoundError: org/apache/commons/daemon/Daemon 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(Unknown Source) 
    at java.security.SecureClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.access$100(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
Caused by: java.lang.ClassNotFoundException: org.apache.commons.daemon.Daemon 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    ... 12 more 
Exception in thread "main" 

Crawford-демон:

[2015-01-07 15:47:47] [info] Commons Daemon procrun (1.0.10.0 32-bit) started 
[2015-01-07 15:47:47] [info] Running 'ImageProcAgent' Service... 
[2015-01-07 15:47:47] [info] Starting service... 
[2015-01-07 15:47:49] [error] FindClass com/fx358/fx9/agent/AgentApp failed 
[2015-01-07 15:47:49] [error] Failed to start Java 
[2015-01-07 15:47:49] [error] ServiceStart returned 4 
[2015-01-07 15:47:49] [info] Run service finished. 
[2015-01-07 15:47:49] [info] Commons Daemon procrun finished 
  • `[2015-01-07 15:47:49] [ошибка] FindClass ком/fx358/FX9/agent/AgentApp не удалось

Вот сценарий, который я использую для установки агента:

SET DISPLAYNAME="ImageProcAgent" 
SET DESCRIPTION="FX9 image processing Agent" 
SET LOGPATH="C:\FX9\logs\ImageProcAgent" 
SET STARTPATH= 
SET JVMLOCATION="C:\Program Files (x86)\Java\jre7\bin\client\jvm.dll" 
SET CUSTCLASSPATH="C:\FX9\release\ImageProcAgent\GenericAgent_jar\GenericAgent.jar;C:\FX9\release\ImageProcAgent\GenericAgent_jar\ImageProcAgent.jar;." 
ECHO ON 
ImageProcAgent.exe //IS//ImageProcAgent --DisplayName=%DISPLAYNAME% --Description=%DESCRIPTION% --Startup=auto --LogPath=%LOGPATH% --LogLevel=INFO --LogPrefix=crawford-daemon --StdOutput=auto --StdError=auto --StartPath=%STARTPATH% --StartClass=com.fx358.fx9.agent.AgentApp --StartMethod=main --StartParams=start --StartMode=jvm --StopPath=%% --StopClass=com.fx358.fx9.agent.AgentApp --StopMethod=stop --StopMode=jvm --Jvm=%JVMLOCATION% --Classpath=%CUSTCLASSPATH% --JvmOptions=-Xmx512M ++JvmOptions=-Djava.util.logging.config.file=logging.properties 

` ` Может кто-нибудь указать мне, что я делаю неправильно? заранее спасибо.

ответ

-1

У меня была такая же ошибка с запущенной сборкой jar с ANT. Сбой службы Service-Class с серьезной ошибкой. Одна из причин заключалась в том, что я использовал подписанные библиотеки SHA1-Digest, пожалуйста, проверьте это. Чтобы избежать этой проблемы, не создавайте runnable, доставляйте библиотеки, которые вы используете, и установите Class-Path в MANIFEST.MF вашего JAR-файла. Надеюсь, это вам поможет.

0

У меня была такая же ошибка. Оказывается, я пытался использовать commons-logging и log4j непосредственно в классе Service. Однако log4j не инициализировался должным образом, что вызвало ошибку загрузки.

Я удалил все log4j, заменив его простым System.out. * И он сработал.

0

В вашем объявлении в переменном CLASSPATH есть записи только 2 баночки:

CUSTCLASSPATH="C:\FX9\release\ImageProcAgent\GenericAgent_jar\GenericAgent.jar;C:\FX9\release\ImageProcAgent\GenericAgent_jar\ImageProcAgent.jar;."

ли ваше приложение ваша сборка в качестве жира-банки, содержащей все компиляции и зависимости во время выполнения? В противном случае вам нужно будет добавить каждый JAR, который необходим во время выполнения вашей службы для пути к классам. Например:

CUSTCLASSPATH="C:\FX9\release\ImageProcAgent\GenericAgent_jar\GenericAgent.jar;C:\FX9\release\ImageProcAgent\GenericAgent_jar\ImageProcAgent.jar;C:\FX9\release\ImageProcAgent\GenericAgent_jar\lib\commons-daemon-1.0.15.jar;<PROBABLY_MORE_JARS_NEED_TO_BE_ADDED_HERE>;."

Кроме того, используя . в пути к классам вашего сервиса, вероятно, не является хорошей идеей. Вы должны использовать только полные пути. В противном случае вы будете зависимы от местоположения, из которого выполняется служба Windows.

 Смежные вопросы

  • Нет связанных вопросов^_^