我正在参与一个使用Spring和GWT的多模块maven2项目。假设我有两个子项目: service和presentation。"service“包含服务的实际实现,而"presentation”负责为GWT包装它们。
我已经成功地加载了WEB-INF目录(与web.xml相同)中的Spring XML文件,但是对于那些应该从其他模块加载的XML文件,我遇到了问题。
我的web.xml看起来像这样:
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:/spring-presentation.xml, classpath:/spring-services.xml
</param-value>
</context-param>这里,spring-presentation.xml在演示项目中,而spring-services.xml在服务项目中。未加载spring-services.xml文件。我是不是遗漏了什么?
发布于 2010-07-20 02:37:22
我猜测演示项目被编译为WAR,而服务项目被编译为JAR。此外,演示项目依赖于服务项目。
在这种情况下,将spring-services.xml文件作为资源包含在服务项目的pom中,以便将其放入其jar中,并且由于表示项目依赖于服务项目,因此服务jar将被放入/WEB-INF/lib文件夹中,然后Spring将能够从类路径加载它。
发布于 2010-07-20 02:35:16
如果该值以classpath:开头,则不会在WEB-INF/文件夹中查找,而是在类路径中查找,类路径是WEB-INF/classes,是WEB-INF/lib/下所有jar文件的直接内容。
要使其显示在WEB-INF/文件夹中,需要指定如下所示的值:
<param-value>
/WEB-INF/spring-presentation.xml
/WEB-INF/spring-services.xml
</param-value>(您可以将它们放在一行中,用逗号分隔,但我喜欢这样)
发布于 2010-07-20 07:08:59
使用
<import resource="classpath:spring-services.xml" />
在spring-presentation.xml的顶部,而不是从web.xml引用它
https://stackoverflow.com/questions/3283884
复制相似问题