spring - 分别从 web.xml 和 web-fragment.xml 定义上下文参数

标签 spring web.xml tomcat8 web-fragment

我有一个使用多个网络片段的主网络应用项目。它在 Tomcat 8 上运行。

在我的 web.xml 文件中,我引用了主要的 Spring 上下文,例如:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        classpath*:META-INF/spring/mainCtx.xml
    </param-value>
</context-param>

并且在 WEB-INF/lib文件夹我有一个 componentA.jar在它自己的 META-INF 下包含一个 web-fragment.xml文件夹(不同于主应用程序的 META-INF 文件夹):

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        classpath*:META-INF/spring/componentA_Ctx.xml
    </param-value>
</context-param>

但是,Spring 似乎无法在 jar 中找到我的 compomentA_Ctx.xml。进一步阅读,似乎是因为名称冲突 contextConfigLocation在 2 个上下文文件中。

我的目标是为组件提供可插拔性,使其独立于主 Web 应用程序。因此我想单独加载它的上下文。

有没有办法让 Spring 在两个位置都查找上下文?或者在 web.xmlweb-fragment.xml 中分别定义上下文的方法?

最佳答案

我遇到过类似的问题,在 web.xml 和 web-fragment.xml 中定义两个上下文不起作用。我通过在邮件上下文中导入 componentA_Ctx.xml 来管理,如下所示。

 <import resource="classpath*:/META-INF/yourpath/componentA_Ctx.xml"/>

上面的配置还是像个可插拔的东西。即使类路径中没有这样的文件,主上下文的加载也不会失败。

关于spring - 分别从 web.xml 和 web-fragment.xml 定义上下文参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43753239/

相关文章:

java - 有没有办法将相同的 hibernate 实体映射到不同方案中的多个表

javax.servlet.ServletException : javax. servlet.jsp.JspTagException:在语言环境 'textv' 的代码 'pl_PL' 下找不到消息

java - servlet 的 "display-name"有什么用?

Tomcat 8 - 在不更改 server.xml 的情况下启用 RewriteValve

mysql - 找不到适合 jdbc :mysql from tomcat 8. 0 的驱动程序

xml - InelliJ和apache tomcat8在.IntelliJIdea15/system/tomcat/Unnamed_Form/conf目录下发现没有server.xml

java - springmvc 验证包含 userobject 的 httpsession

java - SpringBoot项目gradle build 'bootRepackage'任务失败,因为无法重命名jar

java - ** 在 web.xml 安全约束中不起作用

java - 如何在 JavaConfig 中设置 jsp-config