当我把这些行:
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
我的appln根本无法加载。当我去http://localhost:8080/app时,它没有加载。但当我删除这些线时,它正确加载。我已将包含org.springframework.web.context.ContextLoaderListener
的必要库放在./app/WEB-INF/lib中。
我的设置是Tomcat 5.5。设置了Context-param:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:./springContext.xml</param-value>
</context-param>
未显示堆栈跟踪。错误信息是:
03-Nov-2010 10:21:48 INFO HostConfig:863 - Deploying web application archive
wma.war
03-Nov-2010 10:21:49 ERROR StandardContext:4253 - Error listenerStart
03-Nov-2010 10:21:49 ERROR StandardContext:4280 - Context [/wma] startup failed
due to previous errors
由于
威尔
答案 0 :(得分:1)
您的contextConfigLocation
设置为非常特殊的值classpath:./springContext.xml
。很清楚这应该是什么意思。您是否在类路径的根目录中查找springContext.xml
文件?如果是这样,那么你应该使用classpath:springContext.xml`,因为类路径资源引用总是相对于类路径的根。
如果失败了,那么看看Tomcat的DEBUG级别日志,在DEBUG级别的启动期间Spring非常冗长,它应该告诉你出了什么问题。奇怪的是,它并没有抛出异常,但我通常希望它会这样做。
答案 1 :(得分:1)
如果您发布服务器日志,可能会有所帮助。
我遇到过这个问题。
显式输入代码。有时复制粘贴结果相同的文本但不同的字符代码。
确保spring库位于构建路径或部署程序集中。 我认为contextloaderlistener位于org.springframework.web.context
希望这会有所帮助:]
答案 2 :(得分:0)
你没有显示堆栈跟踪,但是如果你没有设置context-param,其中ContextLoaderListener可以找到xml文件,那么它可能会抛出错误:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/dispatcher-servlet.xml
</param-value>
</context-param>
如果您使用ContextLoaderListener,您实际上需要有两个xml配置文件,因为如果您使用相同的文件,那么所有bean都会被加载两次。