gpt4 book ai didi

java - 在部署 war 中找不到 Spring Boot : external application. 属性

转载 作者:行者123 更新时间:2023-11-28 22:25:08 24 4
gpt4 key购买 nike

我正在尝试通过将 war 部署到 tomcat 容器来通过外部配置在我的 Spring Boot 应用程序中配置属性。

我的 application.properties 文件保存在 tomcat_folder/conf/myappname/application.properties

我正在使用此属性文件加载一些 aws 配置和数据库详细信息,如 spring.datasource.url 等,并希望使这些属性对整个应用程序可用,并且可以像 @ 一样访问值(“${aws.access_key_id}”)

我还通过添加参数更改了 tomcat conf 中的 Context.xml 文件:

<Parameter name="spring.config.location" value="${catalina.base}/conf/myappname/application.properties" />

我的主要应用程序类如下所示:

@SpringBootApplication
public class MyApplication extends SpringBootServletInitializer{

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(MyApplication.class);
}

public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}

构建并部署 war 到 webapps 文件夹后,当我启动服务器时,出现错误

Caused by: java.io.FileNotFoundException: class path resource [application.properties] cannot be opened because it does not exist

不确定还要配置什么。

最佳答案

我已经测试了您的配置步骤,对我来说没问题。

您可以使用另一种方式来测试您的配置:

  1. 输入application.properties归档到tomcat_folder/lib/application.properties
  2. Context.xml 中删除以下脚本.

<Parameter name="spring.config.location"value="${catalina.base}/conf/myappname/application.properties" />

  1. 启动服务器。

此外,您还可以编辑 catalina.properties

shared.loader=${catalina.base}/conf/myappname/

并保留了您的 application.properties文件在

tomcat_folder/conf/myappname/application.properties

关于java - 在部署 war 中找不到 Spring Boot : external application. 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48548517/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com