Java 在Apache Tomcat中部署应用程序时,应该将application.properties文件放在哪里?

Java 在Apache Tomcat中部署应用程序时,应该将application.properties文件放在哪里?,java,spring,tomcat,Java,Spring,Tomcat,我目前正在ApacheTomcat上部署一个.war文件 我已经完成了数据库的设置,ROOT.war文件已经部署在/opt/tomcat/webapps/上 分配给我部署的ROOT.war文件还附带了application.properties文件 我所做的是将application.properties文件放在根文件夹的根目录下。像这样: 现在,它目前没有运行。 当我尝试启动它时,Tomcat Web应用程序管理器会抛出以下错误: 失败-上下文路径/处的应用程序无法启动失败- 遇到异常or

我目前正在ApacheTomcat上部署一个.war文件

我已经完成了数据库的设置,ROOT.war文件已经部署在/opt/tomcat/webapps/上

分配给我部署的ROOT.war文件还附带了application.properties文件

我所做的是将application.properties文件放在根文件夹的根目录下。像这样:

现在,它目前没有运行。

当我尝试启动它时,Tomcat Web应用程序管理器会抛出以下错误:

失败-上下文路径/处的应用程序无法启动失败- 遇到异常org.apache.catalina.LifecycleException:失败 启动组件 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]

接下来我做的是检查位于/opt/tomcat/logs/catalina.out中的日志

这一行让我觉得问题在于application.properties文件的位置

2020-03-06 11:42:15.978警告4219---[io-8080-exec-27] ConfigServletWebServerApplicationContext:遇到异常 在上下文初始化期间-取消刷新尝试: org.springframework.beans.factory.BeanDefinitionStoreException:失败 解析配置类[asia.edusuite.sample.Application]; 嵌套异常为java.lang.IllegalArgumentException:无法 解析值中的占位符“property.location” “文件:${property.location}/application.properties”

您认为我应该将application.properties文件放在哪里

多谢各位!
-JeremyC

Spring将查找application.properties的位置已定义


WEB-INF/classes中的文件位于根类路径中,除非您的代码专门在其他地方查找,否则应该是可发现的。如果没有源代码,为什么不反编译类以查看发生了什么?(有很多,包括Intellij附带的一个-您只需打开.class文件即可。)

Spring将查找application.properties的位置已定义


WEB-INF/classes中的文件位于根类路径中,除非您的代码专门在其他地方查找,否则应该是可发现的。如果没有源代码,为什么不反编译类以查看发生了什么?(那里有很多,包括Intellij附带的一个-你可以打开.class文件。)

我想它应该在
/WEB-INF/classes
中,我试着把它放在
WEB-INF/classes
中,但我运气不好,它不起作用。我仍然得到
无法解析值“文件:${property.location}/application.properties”中的占位符“property.location”
错误。非常感谢你!可能是
@PropertySource
注释没有正确使用。输出中打印的值对我来说似乎很奇怪。我更熟悉
@PropertySource({“classpath:application.properties”})
@PropertySource(value={“file:application.properties”})
。我不确定您是否可以使用这种逻辑为application.properties定义自定义位置。当您试图解析application.properties的路径时,如果试图读取application.properties中的位置,则可能无法解析路径。非常感谢您的输入。恐怕我没有Java应用程序的源文件。我的任务是部署它在ApacheTomcat上运行。再次感谢你,朋友!在这种情况下,如果它不是一个新的应用程序,并且在过去已经部署过,那么我可能错了。如果从未部署过,则应向开发人员显示错误输出!没问题,希望对你有帮助!我想它应该在
/WEB-INF/classes
中,我试着把它放在
WEB-INF/classes
中,但我运气不好,它不起作用。我仍然得到
无法解析值“文件:${property.location}/application.properties”中的占位符“property.location”
错误。非常感谢你!可能是
@PropertySource
注释没有正确使用。输出中打印的值对我来说似乎很奇怪。我更熟悉
@PropertySource({“classpath:application.properties”})
@PropertySource(value={“file:application.properties”})
。我不确定您是否可以使用这种逻辑为application.properties定义自定义位置。当您试图解析application.properties的路径时,如果试图读取application.properties中的位置,则可能无法解析路径。非常感谢您的输入。恐怕我没有Java应用程序的源文件。我的任务是部署它在ApacheTomcat上运行。再次感谢你,朋友!在这种情况下,如果它不是一个新的应用程序,并且在过去已经部署过,那么我可能错了。如果从未部署过,则应向开发人员显示错误输出!没问题,希望对你有帮助!