【问题标题】:How do I use a given application.properties file when deploying a .war on Apache Tomcat?在 Apache Tomcat 上部署 .war 时如何使用给定的 application.properties 文件?
【发布时间】:2020-06-19 11:32:54
【问题描述】:

我的任务是在 Apache Tomcat 上部署 ROOT.war 应用程序。下面是 ROOT.war 文件内部的样子:

有人告诉我的应用程序使用 Postgresql 作为其数据库。我已经整理好了。

我只想知道如何使用他们提供的这个 application.properties 配置文件在 Apache Tomcat 上运行这个应用程序。这是它的样子:

非常感谢和问候, 杰里米

【问题讨论】:

  • 尝试将application.properties文件放入classes/resources目录
  • 您好@R.G 非常感谢您的帮助。但不幸的是,我仍然无法让它工作。 8080 端口的 Tomcat 仍然会抛出 404 not found 错误。
  • 您如何确认应用程序已正确部署并且您点击的 URL 与预期的一样? localhost:8080/ROOT 返回 404 是吗?
  • 我不完全确定应用程序是否已正确部署。我试图做的是检查 Tomcat 安装目录中的 catalina.log 。日志中的这一行引起了我的注意,是什么让我认为 application.properties 文件的位置是问题所在。
  • 2020-03-06 17:49:20.679 WARN 9710 --- [ost-startStop-1] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [asia.edusuite.sample.Application]; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'property.location' in value "file:${property.location}/application.properties"

标签: java spring tomcat


【解决方案1】:

有多种方法可以指定application.properties 文件的位置。有关如何加载属性的完整列表,请参阅 Spring Boot Documentation

2.3. Application Property Files 部分所述:

SpringApplication 从以下位置的 application.properties 文件中加载属性并将它们添加到 Spring 环境中:

  • 一个/config当前目录的子目录

  • 当前目录

  • 类路径 /config

  • 类路径根

接着说:

如果您不喜欢application.properties 作为配置文件名,您可以通过指定spring.config.name 环境属性来切换到另一个文件名。您还可以使用 spring.config.location 环境属性(以逗号分隔的目录位置或文件路径列表)来引用显式位置。

在众多选项中,我要强调一下:

  • 推荐: 根据this answer,您可以在 Tomcat 上下文 XML 文件中指定位置,尽管 Spring 文档中没有明确指定:

    <Context>
        <Parameter name="spring.config.location" value="file:/path/to/config/folder" />
    </Context>
    
  • 修改.war文件,将文件放到WEB-INF/classes/configWEB-INF/classes文件夹中。

  • 如果您可以为运行的 Tomcat 指定工作目录,请将文件放在那里或config 子文件夹中。

  • 如果您可以为正在运行的 Tomcat 指定 JVM 选项,请添加 -Dspring.config.location=file:/path/to/config/folder,并将文件放在那里。

【讨论】:

    猜你喜欢
    • 2019-12-22
    • 1970-01-01
    • 2014-04-19
    • 2011-09-02
    • 2010-09-13
    • 2012-07-29
    • 1970-01-01
    • 2015-05-08
    相关资源
    最近更新 更多