gpt4 book ai didi

java - Tomcat 属性配置文件位置

转载 作者:行者123 更新时间:2023-11-28 22:18:33 27 4
gpt4 key购买 nike

我是 Java 新手(拥有 .Net 背景后大约有 2 个月的 Java 经验)。我被要求支持一个使用 Spring、J2EE 和 Oracle 数据库的 Java 应用程序。

我们的部署过程存在问题,我很难理解。

有问题的 Java 应用程序在 application.properties 文件中有数据库连接的详细信息。它的位置似乎是使用以下行从 Spring 配置文件配置的:

<context:property-placeholder       location="classpath:config/application.properties,classpath:config/bookings.properties" ignore-resource-not-found="true" />

在我们的开发 Tomcat 服务器上,应用程序(称为 Bookings)在此位置查找 application.properties 文件:

/usr/share/tomcat/webapps/Bookings/WEB-INF/classes/config

这是我所期望的,查看 Spring 配置。

但是,在生产 Tomcat 上,应用程序看起来位于不同的位置:

/usr/share/tomcat/lib/config

(在此目录中,文件名为 bookings.properties。

原来的开发人员已经离开公司,我不知道为什么它会在不同的位置查找文件(和不同的文件名)。

有什么想法可以查看,或者可以在哪里配置?应该注意的是,两个文件(application.properties 和 bookings.properties)都存在于两个 Tomcat 服务器上,所以我不明白其中的差异?

我们已经将同一个 WAR 文件重新部署到开发和生产中,但差异仍然存在,即服务器看起来仍然在不同的地方。

最佳答案

classpath是一个目录,您可以在其中放置一些资源(为简单起见,链接上有更多详细信息)。那是一个变量,它被添加到启动命令中,有时它有点隐藏。但这就是它的工作方式。

也许您可以在 $TOMCAT_DIR\bin\catalina.sh 中查看类路径是如何定义的。在您的情况下,类路径中包含的文件夹在开发服务器和生产服务器之间是不同的。这是完全正常的。

但是,您说在生产环境中文件名为 bookings.properties。但是有了这一行:

<context:property-placeholder       location="classpath:config/application.properties,classpath:config/buyer-request.properties" ignore-resource-not-found="true" />

我们看到您从未尝试加载名为 booking.properties 的文件。所以问问自己为什么文件被称为 booking.properties。并将其重命名为 application.properties,看看会发生什么。

希望对你有帮助

关于java - Tomcat 属性配置文件位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33014578/

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