2013-12-23 1 views
0

Я могу создать военный файл в STS, но я не могу его развернуть! Grails версия 2.1.1.Не удается запустить файл Grails war-file на Tomcat

Я читал все виды сообщений, я запускал чистые, обновлял, компилировал, запускал приложение (отлично работает), обновлял Java, менял db-драйверы (postgresql: postgresql: 9.3-1100.jdbc41), удалял тест из исходного пути, изменили grails.servlet.version на 3.0, чтобы назвать несколько.

Моя установка в настоящий момент очень ванильна, поэтому нет мистических плагинов.

При попытке развернуть его с помощью Tomcat или запустить grails run-war я получаю следующее сообщение об ошибке:

Dec 23, 2013 11:39:10 PM org.apache.catalina.core.ApplicationContext log 
INFO: No Spring WebApplicationInitializer types detected on classpath 
Dec 23, 2013 11:39:12 PM org.apache.catalina.core.ApplicationContext log 
INFO: Initializing Spring root WebApplicationContext 
Dec 23, 2013 11:39:17 PM org.apache.catalina.core.StandardContext listenerStart 
SEVERE: Exception sending context initialized event to listener instance of class    org.codehaus.groovy.grails.web.context.GrailsContextLoaderListener 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name  'pluginManager' defined in ServletContext resource [/WEB-INF/applicationContext.xml]:  Invocation of init method failed; nested exception is java.lang.RuntimeException: Unable to  locate constructor with Class parameter for class  org.codehaus.groovy.grails.commons.DefaultGrailsControllerClass 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:1145) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
at java.lang.Thread.run(Thread.java:744) 
Caused by: java.lang.RuntimeException: Unable to locate constructor with Class parameter for class org.codehaus.groovy.grails.commons.DefaultGrailsControllerClass 
... 5 more 
Caused by: java.lang.reflect.InvocationTargetException 
... 5 more 
Caused by: java.lang.NoClassDefFoundError: Lgrails/test/mixin/domain/DomainClassUnitTestMixin; 
at java.lang.Class.privateGetDeclaredFields(Class.java:2397) 
at java.lang.Class.getDeclaredFields(Class.java:1806) 
... 5 more 
Caused by: java.lang.ClassNotFoundException: grails.test.mixin.domain.DomainClassUnitTestMixin 
... 7 more 
+1

Посмотрите на следующий стек: http://stackoverflow.com/questions/19410995/groovy-grails-tool-suite-noclassdeffounderror-on-war-deployment. Кажется, что это ошибка с STS, которая не включает в себя mixins DomainClassUnitTest/файл jar, в котором они находятся. Надеюсь, что это поможет. – bschipp

+0

Я видел это сообщение, пробовал все ... без кубиков! – marko

+0

Это раздражает, можно ли вообще модернизировать grails и посмотреть, может быть, это исправить? Я предполагаю, что это также может быть идея удалить все юниверсы, которые были созданы, если вы хотите увидеть, только ли это миксины, которые нарушают вашу сборку. – bschipp

ответ

1

Для записи.

Что я сделал копии:

grails-plugin-testing-2.1.1.jar 
grails-test-2.1.1.jar 
grails-test-suite-base-2.1.1.jar 

(Может быть найден в GRAILS_HOME/Dist)

в Форрест/Lib и это мой Config.groovy:

grails.war.dependencies = [ 
    "grails-plugin-testing-2.1.1.jar", 
    "grails-test-2.1.1.jar", 
    "grails-test-suite-base-2.1.1.jar" 
] 

После что я делал чистку, компиляцию и бег.

У меня создалось впечатление, что test/prod были отделены друг от друга, так как я не хочу, чтобы в моем военном файле содержалось что-либо, связанное с тестом.

0

Если вам действительно нужно проверить .war, но я полагаю, что ваша команда grails run-app выполнена успешно и приложение запущено. Разве нет? Если это!! Я предлагаю вам сделать следующее:

Я предлагаю также выше ошибка проблема конфигурации в Грааль и на кот STS среды это сам ... мне кажется ... так,

1. Install `Tomcat 6` Outside for Testing the `.war` after generating using grails console and the command below 

2. Instead of running the war directly from the grails console try to generate a Test ,Development or a production environment `.war` package as follow . 

NB Вы должны иметь окружающую среду Конкретные условий для развертывания в вашем config.groovy файла под Грааль conf папку ..

продолжение ...

grails -Dgrails.env=development war 

или просто

grails deve war //here deve is referring to development environment u can do same for test and prod... 

So.After Вы успешно осуществили вышеуказанные шаги ... настало время для вас, чтобы собрать вас зерна в банку ... так что найти место войны генерируемой он находится под папкой targets на вашем created grails application folder.

Итак, после того, что startmanually или automatically начал TOmcat6/7 .goto webapps сервер и скопировать пакет, созданный выше ... первый Stop Running Tomcat Server if any! .... Ура!

+0

спасибо за продолжение! Кто-то, надеюсь, найдет это очень полезным (я тоже сделал это!), Но я не застрял в этой проблеме, мне удалось заставить его работать. – marko

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

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