2012-10-29 36 views
0

Velocity Configuration with spring,我缺少一些配置。請告訴我爲什麼這樣發生。 當我點擊我的網址時出現以下錯誤。org.springframework.core.NestedIOException:無法找到網址的速度模板

SEVERE: Servlet.service() for servlet springDispatcher threw exception 
org.springframework.core.NestedIOException: Cannot find Velocity template for URL [layout.vm]: Did you specify the correct resource loader path?; nested exception is org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource 'layout.vm' 
at org.springframework.web.servlet.view.velocity.VelocityLayoutView.checkResource(VelocityLayoutView.java:133) 
at org.springframework.web.servlet.view.UrlBasedViewResolver.loadView(UrlBasedViewResolver.java:438) 
at org.springframework.web.servlet.view.AbstractCachingViewResolver.createView(AbstractCachingViewResolver.java:186) 
at org.springframework.web.servlet.view.UrlBasedViewResolver.createView(UrlBasedViewResolver.java:401) 
at org.springframework.web.servlet.view.AbstractCachingViewResolver.resolveViewName(AbstractCachingViewResolver.java:103) 
at org.springframework.web.servlet.DispatcherServlet.resolveViewName(DispatcherServlet.java:1211) 
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1160) 
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:950) 
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) 
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) 
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) 
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606) 

彈簧的context.xml

<bean id="velocityConfig" 
class="org.springframework.web.servlet.view.velocity.VelocityConfigurer"> 
<property name="resourceLoaderPath" value="/WEB-INF/velocity/" /> 
</bean> 

<!-- View resolvers can also be configured with ResourceBundles or XML files. 
If you need different view resolving based on Locale, you have to use the 
resource bundle resolver. --> 
<bean id="viewResolver" 
class="org.springframework.web.servlet.view.velocity.VelocityLayoutViewResolver"> 
<property name="cache" value="true" /> 
<property name="prefix" value="" /> 
<property name="suffix" value=".vm" /> 
</bean> 

,我發現了以下異常時velocityconfig被丟棄。

org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [org.springframework.web.servlet.view.velocity.VelocityConfig] is defined: expected single bean but found 0 
at org.springframework.beans.factory.BeanFactoryUtils.beanOfTypeIncludingAncestors(BeanFactoryUtils.java:367) 
at org.springframework.web.servlet.view.velocity.VelocityView.autodetectVelocityEngine(VelocityView.java:239) 
at org.springframework.web.servlet.view.velocity.VelocityView.initApplicationContext(VelocityView.java:225) 
at org.springframework.context.support.ApplicationObjectSupport.initApplicationContext(ApplicationObjectSupport.java:119) 
at org.springframework.web.context.support.WebApplicationObjectSupport.initApplicationContext(WebApplicationObjectSupport.java:72) 
at org.springframework.context.support.ApplicationObjectSupport.setApplicationContext(ApplicationObjectSupport.java:73) 
at org.springframework.context.support.ApplicationContextAwareProcessor.invokeAwareInterfaces(ApplicationContextAwareProcessor.java:117) 
at org.springframework.context.support.ApplicationContextAwareProcessor.postProcessBeforeInitialization(ApplicationContextAwareProcessor.java:92) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:394) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1448) 
at org.springframework.beans.fact 

回答

1

如果我沒有錯,您將能夠單獨使用viewResolver來實現Velocity配置。

修改您的前綴,在你的resourceLoaderPath中提到的,它應該是罰款(沒有測試它自己)

<property name="prefix"><value>/WEB-INF/velocity/</value></property> 

此外,您可以完全放棄了velocityConfig標籤。

+0

我認爲'velocityconfig'是必需的,因爲當我放棄'velocityConfig'標籤時,我得到了一些異常。這個例外也在帖子中給出。再看看這篇文章。 – Visruth

+0

對不起。順便說一句,做前綴的路徑到您的模板工作? –

+0

不,它沒有工作。 – Visruth

-2

你應該使用

(bean id="ViewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver") 

(bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityLayoutViewResolver") 

這個bean使用 'layout.vm',我也有這個問題。