我正在尝试在Tomcat7上运行一个需要一些插件并使用Grails编写的Project.
使用grails prod war命令创建-war会导致无错误.但是,如果我将应用程序添加到我的Tomcat7服务器,它将无法执行.
我的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
Run Code Online (Sandbox Code Playgroud)
我的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>
Run Code Online (Sandbox Code Playgroud)
我的研究表明,使用新的Grails 2.4.0,有些东西已被删除,就像Holder一样.
但现在我不知道该怎么办我该删除线?我需要更换它们甚至删除它们吗?
提前致谢
只是,
grailsResourceLoader从中删除bean引用(下面的行)applicationContext.xml.
<property name="grailsResourceLoader" ref="grailsResourceLoader" />
Run Code Online (Sandbox Code Playgroud)
并从grailsApplicationbean 的属性中删除它
你将拥有:
<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>
Run Code Online (Sandbox Code Playgroud)