Grails ApplicationContext.xml grailsResourceLoader

#xml #grails

#xml #grails

Вопрос:

Я пытаюсь запустить проект на Tomcat7, который требует некоторых плагинов и написан на Grails.

Создание a -war с помощью команды grails prod war не приводит к ошибкам. Но если я добавлю приложение на свой Tomcat7server, оно не будет выполнено.

Файл журнала моего tomcat7 сообщает, что, должно быть, что-то не так с моим ApplicationContext.xml .

 2014-07-01 15:22:22,325 [http-bio-8080-exec-87] ERROR StackTrace  - Full Stack Trace:
org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'grailsApplication' defined in ServletContext resource [/WEB-INF/applicationContext.xml]:
Cannot resolve reference to bean 'grailsResourceLoader' while setting bean property 'grailsResourceLoader'; 
nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: 
Cannot find class [org.codehaus.groovy.grails.commons.GrailsResourceLoaderFactoryBean] 
for bean with name 'grailsResourceLoader' defined in ServletContext resource [/WEB-INF/applicationContext.xml]; 
nested exception is java.lang.ClassNotFoundException: org.codehaus.groovy.grails.commons.GrailsResourceLoaderFactoryBean
  

Мой ApplicationContext.xml выглядит так:

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

    <bean id="grailsApplication" class="org.codehaus.groovy.grails.commons.GrailsApplicationFactoryBean">
        <description>Grails application factory bean</description>
        <property name="grailsDescriptor" value="/WEB-INF/grails.xml" />
        <property name="grailsResourceLoader" ref="grailsResourceLoader" />
    </bean>

    <bean id="pluginManager" class="org.codehaus.groovy.grails.plugins.GrailsPluginManagerFactoryBean">
        <description>A bean that manages Grails plugins</description>
        <property name="grailsDescriptor" value="/WEB-INF/grails.xml" />
        <property name="application" ref="grailsApplication" />
    </bean>

    <bean id="grailsConfigurator" class="org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator">
        <constructor-arg>
            <ref bean="grailsApplication" />
        </constructor-arg>
        <property name="pluginManager" ref="pluginManager" />
    </bean>

    <bean id="grailsResourceLoader" class="org.codehaus.groovy.grails.commons.GrailsResourceLoaderFactoryBean">
        <property name="grailsResourceHolder" ref="grailsResourceHolder" />
    </bean>

    <bean id="grailsResourceHolder" scope="prototype" class="org.codehaus.groovy.grails.commons.spring.GrailsResourceHolder">
        <property name="resources">
              <value>classpath*:**/grails-app/**/*.groovy</value>
        </property>
    </bean>    

   <bean id="characterEncodingFilter"
      class="org.springframework.web.filter.CharacterEncodingFilter">
        <property name="encoding">
          <value>utf-8</value>
        </property>
   </bean>      
</beans>
  

Мое исследование показало мне, что с новым Grails 2.4.0 некоторые вещи были удалены, например, содержимое Держателя.

но теперь я не знаю, что с этим делать, мне удалить строки? Нужно ли мне заменить их или даже удалить ?

Заранее спасибо

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

1. То, что я сделал затем, обновило мои собственные приложения. Сначала я создал новое приложение grails и сравнил с моим — что добавлено и удалено. Во-вторых, со старыми плагинами вы можете столкнуться со многими проблемами. Затем вы можете просто подождать или попытаться исправить и отправить код разработчикам плагинов.

Ответ №1:

Просто,

Удалите grailsResourceLoader ссылку на компонент (строку ниже) из applicationContext.xml .

 <property name="grailsResourceLoader" ref="grailsResourceLoader" />
  

и удалите его из свойства grailsApplication bean

и у вас будет:

 <bean id="grailsApplication" class="org.codehaus.groovy.grails.commons.GrailsApplicationFactoryBean">
    <description>Grails application factory bean</description>
    <property name="grailsDescriptor" value="/WEB-INF/grails.xml" />
</bean>
  

Ответ №2:

Смотрите раздел «Изменения в applicationContext.xml » — http://grails.org/doc/2.4.x/guide/upgradingFrom23.html

В основном удалите ссылку на grailsResourceLoader и соответствующую форму объявления компонента applicationContext.xml

Ответ №3:

https://groups.google.com/forum /#!форум/grails-dev-обсудите пожалуйста.

(скопируйте поверх applicationContext.xml из дистрибутива 2.4 в ваше приложение grails)