java - Tomcat 属性配置文件位置

标签 java spring spring-mvc tomcat

我是 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/

相关文章:

Java无法加载 "BEGIN TRUSTED CERTIFICATE"格式的证书

java - 在java中进行二进制到十六进制转换时,我的答案前面总是有一个空

java - Spring 启动: MVC not returning view : thymeleaf & Spring data

java - 如何检查 View 是否存在?

java - 如何将 JarInputStream 转换为 JarFile 而不保存到磁盘?

Java MIDI : How do I change the pan of an individual note in a Sequence?

带有过滤器 permitAll 的 Spring Security 不起作用

java - 在 Spring AMQP 中处理无法传递给消费者的消息

java - 配置类中的@RefreshScope

java - 如何使用 Spring Security 允许来自某个 url 的请求