当前位置: 首页 > 面试题库 >

从.war文件外部化Tomcat Webapp配置

富钧
2023-03-14
问题内容

我在Tomcat 7中配置Web应用程序时遇到问题。在我的WAR文件中,有一个属性文件myApp/WEB- INF/classes/myProps.props,它包含特定于环境的属性。我试图在服务器上覆盖该配置文件,以便将同一WAR文件部署到多个环境。

我听说有一种方法可以使用中的替换配置文件来执行此操作tomcat/conf/Catalina/myApp。这是我很难弄清楚的方法。

另外,myApp.war是同一台Tomcat服务器上运行的许多软件之一,它不能作为本地主机运行。我希望能够为多个Web应用程序解决此问题。

Server version: Apache Tomcat/7.0.23
Server built:   Nov 20 2011 07:36:25
Server number:  7.0.23.0
OS Name:        Linux

问题答案:

tomcat/conf/Catalina/<host>可以包含上下文描述符,这些上下文描述符使您可以配置很多东西,包括定义“环境条目”,可以通过Java通过JNDI访问这些条目。有很多方法可以使用它。我个人设置了一个环境条目,它是我的属性文件的文件系统路径。我的应用程序被构建为检查此项,如果不存在,请在类路径中查找文件。这样,在dev中,我们就在类路径上具有dev属性,但是在构建和部署时,我们将其指向外部文件。

在Tomcat网站上有很好的文档来配置上下文。有关如何创建文件以及将文件放在何处的详细信息,请参见“
定义上下文”
部分

举个例子,如果你的主机的名称myHost和您的应用程序被命名为war文件myApp.warwebapps目录,那么你可以创建tomcat/conf/Catalina/myHost/myApp.xml与此内容:

<Context>
    <Environment name="configurationPath" value="/home/tomcat/myApp.properties" type="java.lang.String"/>
</Context>

然后,从您的代码中进行JNDI查找java:comp/env/configurationPath(此处的确定性为95%)以获取该字符串值。



 类似资料:
  • 我们正在构建一个大型web应用程序作为几个WAR文件。每个WAR文件都是一个Spring Boot应用程序。对于开发和测试,我们可以独立运行这些WAR文件。但在生产中,我们希望在一个Jetty(9.x)实例下一起运行所有WAR文件。 我们有的问题是,在这种场景下处理外部化配置的最佳方法是什么?每个WAR文件都有自己需要的配置文件集(application.properties和其他)。我们如何设置

  • 问题内容: 我有一个要求,要将所有logback配置都放在war文件之外。目前,我已将配置文件(logback.xml)放在类路径上。我正在使用JBOSS EAP Web应用程序服务器,请提出如何实现相同的建议。 问题答案: 进入jboss启动/运行脚本并添加以下选项: 的java -Dlogback.configurationFile = /路径/到/ config.xml中 chapters.

  • 描述: 配置数据源失败:未指定“URL”属性,无法配置嵌入的数据源。 原因:无法确定合适的驱动程序类 为了外部化属性文件,我使用了以下代码。 和的值,并将此代码添加到文件中,用于将文件从我使用的war文件中排除。

  • 问题内容: 我正在开发Java桌面应用程序,并且想要一个外部configuration.xml。 我正在使用Netbeans开发应用程序,并尝试将config.xml文件添加到dist目录中,以使其驻留在应用程序工作文件夹中。但是,当Netbeans执行其清理操作时,它将删除dist目录, 我应该在何处放置此configuration.xml文件,以便它不会被删除并存在于应用程序启动目录中。 问题

  • 主要内容:spring.config.location,示例 1,spring.config.additional-location,示例 2除了默认配置文件,Spring Boot 还可以加载一些位于项目外部的配置文件。我们可以通过如下 2 个参数,指定外部配置文件的路径: spring.config.location  spring.config.additional-location  spring.config.location 我们可以先将 Spring Boot 项目打包成 JAR

  • 运行maven命令: mvn Flyway:repair-flyway.config File=MyFlywayConfig.properties 返回错误: 有没有人知道如何在外部配置的基础上完成flyway插件的目标?