Spring не может подключиться к базе данных при запуске Monit

У меня есть сервер Jetty 6 с приложением Grails 1.1 (которое, в свою очередь, использует Hibernate). Поскольку иногда происходит сбой, я бы хотел, чтобы он автоматически перезагружался, если что-то происходит. Итак, я услышал о Monit и решил попробовать. Я создал следующую конфигурацию:

check process jetty with pidfile /var/run/jetty.pid
  group nfetron
  start program = "/data/ebs/NFeTron/bin/jetty.sh start"
  stop program = "/data/ebs/NFeTron/bin/jetty.sh stop"
  if failed host "localhost" port 8090 protocol HTTP with timeout 10 seconds then restart
  if mem usage > 95% for 11 cycles then restart

Проблема в том, что когда Monit запускает Jetty, он не работает нормально. Не удается подключиться к базе данных, как видно из следующего журнала:

2017-02-13 21:35:34.356::INFO:  jetty-6.1.14
2017-02-13 21:35:34.404::INFO:  Deploy /data/ebs/NFeTron/contexts/javadoc.xml -> org.mortbay.jetty.handler.ContextHandler@153f5a29{/javadoc,file:/data/ebs/NFeTron/java$
2017-02-13 21:35:34.536::INFO:  No Transaction manager found - if your webapp requires one, please configure one.
2017-02-13 21:35:34.875::INFO:  No Transaction manager found - if your webapp requires one, please configure one.
2017-02-13 21:35:35.404::INFO:  No Transaction manager found - if your webapp requires one, please configure one.
2017-02-13 21:35:37.337:/NFeTron:INFO:  Initializing Spring root WebApplicationContext
loading security config ...
2017-02-13 21:35:54.383::WARN:  Failed startup of context org.mortbay.jetty.webapp.WebAppContext@770c2e6b{/NFeTron,file:/data/ebs/NFeTron/webapps/NFeTron/}
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'messageSource': Initialization of bean failed; nested exception is org.springfr$
        at java.security.AccessController.doPrivileged(Native Method)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager': Cannot resolve reference to bean 'sessionFactor$
        at java.security.AccessController.doPrivileged(Native Method)
        ... 1 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Invocation of init method failed; nested exception $
        at java.security.AccessController.doPrivileged(Native Method)
        ... 2 more
Caused by: java.lang.NullPointerException
        ... 3 more
2017-02-13 21:35:54.384::WARN:  Nested in org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'messageSource': Initialization of bea$
java.lang.NullPointerException
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessController.doPrivileged(Native Method)
2017-02-13 21:35:54.390::INFO:  Opened /data/ebs/NFeTron/logs/2017_02_13.request.log
2017-02-13 21:35:54.456::INFO:  Started SelectChannelConnector@0.0.0.0:8090

Я много искал и не мог найти никого, кто сталкивался бы с той же проблемой. Когда я запускаю приложение, используя SSH (с пользователем root), оно работает нормально. Но когда Monit запускает его (предположительно, от имени пользователя root), это не так. Кто-нибудь имеет какое-либо представление об этой проблеме?

0 ответов

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