apache tomcat: ошибка при запуске приложения grails

#apache #grails #tomcat7

#apache #grails #tomcat7

Вопрос:

Я развернул Grails war на сервере, на котором я установил Apache Tomcat 7, но он не запускается. Вот трассировка стека, приведенная в catalina.out:

 2014-07-05 12:07:55,875 [http-bio-8080-exec-53] ERROR context.ContextLoader  - Context initialization failed 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pluginManager' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invo
cation of init method failed; nested exception is java.lang.NullPointerException: Cannot invoke method getAt() on null object
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException: Cannot invoke method getAt() on null object
    ... 5 more
2014-07-05 12:07:55,883 [http-bio-8080-exec-53] ERROR context.GrailsContextLoader  - Error initializing the application: Error creating bean with name 'pluginManager' defined in
ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NullPointerException: Cannot invoke method getAt() on
null object
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pluginManager' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invo
cation of init method failed; nested exception is java.lang.NullPointerException: Cannot       invoke method getAt() on null object
    at    com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException: Cannot invoke method getAt() on null object
    ... 5 more
2014-07-05 12:07:55,886 [http-bio-8080-exec-53] ERROR context.GrailsContextLoader  -     Error initializing Grails: Error creating bean with name 'pluginManager' defined in ServletC
 ontext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed;  nested exception is java.lang.NullPointerException: Cannot invoke method getAt() on null obj 
 ect
 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pluginManager' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invo
cation of init method failed; nested exception is java.lang.NullPointerException: Cannot    invoke method getAt() on null object
     at      com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.j ava:819)
        at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
  Caused by: java.lang.NullPointerException: Cannot invoke method getAt() on null object
     ... 5 more
  

Есть предложения по этому поводу?

РЕДАКТИРОВАТЬ: версия tomcat, в которой war не работает, — 7.0.54. Ранее я использовал на другом компьютере более раннюю версию (7.0.26), и начинается война.

Комментарии:

1. как run-war / prod run-app получается?

2. извините, что вы имеете в виду, Марио? Если вы имеете в виду, как я запускаю приложение, я использую кнопку «Пуск» в Apache Tomcat App Manager

3. я имел в виду, происходит ли то же самое, когда вы используете интерактивную консоль grails для запуска приложения на встроенном сервере tomcat (в рабочем режиме). В общем, было бы хорошо, если бы вы рассказали нам немного больше о контексте и о том, что вы уже опробовали

4. Я никогда не использовал интерактивную консоль grails для запуска приложения. В рабочей среде я использую Intellij Idea IDE, и приложение запускается правильно. Я поместил приложение на другой сервер, и оно тоже запускается, но на первом сервере (который является виртуальным удаленным) У меня есть вышеупомянутое исключение

5. Для меня причиной ошибки была комбинация Java 8 и tomcat 7.0.54. Понижение версии до Java 7 и tomcat 7.0.26 решило проблему.

Ответ №1:

У меня была такая же проблема при попытке запустить мой проект Grails 2.2.4 в Ubuntu 16.04 beta, и, как упоминал Томаш в комментарии, похоже, это комбинация старой версии Grails, Java 8 и более новых версий tomcat. И tomcat 7, и tomcat 8 имеют одинаковую проблему. Я решил проблему, обновив свой проект Grails до версии Grails 2.3.11, на что я был способен без масштабного рефакторинга кода. Переключение на более старый tomcat или Java 7 не было для меня вариантом.

Комментарии:

1. Неправильная версия java (8 вместо 7) вызвала у меня эту проблему, и этот ответ помог мне ее решить. Спасибо!