我是春季新手
我试图使用货物在tomcat上部署我的war文件,并抱怨在目录中找不到applicationContext.xml
。
我进一步查找它应该去的地方并添加了一个空白的xml文件applicationContext.xml
以查看是否有效但是它抱怨了某些内容
[INFO] [talledLocalContainer] SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
[INFO] [talledLocalContainer] org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 1 in XML document from class path resource [applicationContext.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Premature end of file.
我不确定为什么我需要applicationContext.xml
如果我真的需要它,我应该把它放在那里?
我尽可能多地使用@annotations
,我的单元测试也正确传递,意思是,我看到我的豆子正确连线
老年人,请帮忙
谢谢
更新
src/main/webapp/WEB-INF/web.xml
<xml>
</xml>
src/main/resources/applicationContext.xml
<beans></beans>
答案 0 :(得分:4)
你必须告诉&#34;您的应用程序在哪里查找描述您的应用程序上下文的文件,如下所示:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:/applicationContext.xml</param-value>
</context-param>
您可能需要调整<param-value>
下的路径,但基本上就是这样。
我还建议minimun applicationContext.xml
看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="your.package.here"/>
<tx:annotation-driven />
</beans>
如果您不需要Spring事务管理,请随意删除最后一行和相关的模式引用。
另外我还想提一下,技术上 是摆脱applicationContext.xml
完全的一种方式,但我真的怀疑它是否值得。你可能会发现this article很有用。
答案 1 :(得分:0)
查看参考文档的this part,尤其是这句话:
侦听器检查contextConfigLocation参数。如果参数不存在,则 listener使用/WEB-INF/applicationContext.xml作为默认值。
这就是它正在寻找applicationContext.xml文件以及原因。