procrun в --StartMode=Jvm, выполняющий main, который выдает исключение, не завершается

Пробуя Apache, я вижу поведение, которое я не понимаю. Сводится к main метод Java-программы, вызывающий исключение. Это нигде не регистрируется и служба Windows не останавливается. Для дальнейшего изучения я изменил main метод для

public static void main(String[] args) throws Exception {
  if (args.length<10000000) {
    throw new Exception("one exception right away");
  }
  ...
}

Когда я устанавливаю это как сервис с prunsrv.exe и затем запустить его, он запускается без проблем и не производит никакого вывода журнала вообще. В частности, служба не останавливается.

Для справки, вот как сервис устанавливается с помощью procrun:

& $procrun "//$operation//$service" `
  --DisplayName="$service" `
  --Description="$service" `
  --DependsOn="$depends" `
  --Startup=auto `
  --Install="$procrun" `
  --Jvm="$JVM" `
  --Classpath="$cp" `
  --Environment="PATH=$env:JAVA_HOME\bin" `
  --JavaHome="$env:JAVA_HOME" `
  --StartPath="c:\Search" `
  --JvmOptions="-Xmx512M;-Xms512M;-Djava.awt.headless=true" `
  --StartMode="jvm" `
  --StartClass="$classname" `
  --LogPath="c:\Search\std-logs" `
  --LogPrefix="procrun-$service" `
  --LogLevel="Debug" `
  --StdError="c:\Search\std-logs\stderr-$no0" `
  --StdOutput="c:\Search\std-logs\stdout-$no0" `
  --StartParams="(unused)"

Я ожидал бы, что служба останавливается сразу же, и я нахожу некоторые выходные данные журнала в файлах stderr / stdout, но ничего. Кто-нибудь может объяснить это?

РЕДАКТИРОВАТЬ: О боже, кажется, procrun ласточки java.lang.Error (в моем случае java.lang.noClassDefFoundError) вместо того, чтобы кричать, кричать и выходить.

1 ответ

После того, как я завернул catch(Throwable) вокруг главной, регистрируя все, что выскочило и затем выходя без повторного броска, я увидел проблему. Я получил java.lang.NoClassDefFoundError,

Нижняя линия: procrun Кажется, глотает исключения типа ошибки и даже не завершает работу, если выдается в вызываемой Java-программе.

Создан вопрос: https://issues.apache.org/jira/browse/DAEMON-344

Другие вопросы по тегам