【问题标题】:Tomcat properties configuration file locationTomcat 属性配置文件位置
【发布时间】:2015-10-08 11:34:15
【问题描述】:

我是 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 文件重新部署到开发和生产中,但差异仍然存在,即服务器仍然位于不同的位置。

【问题讨论】:

    标签: java spring spring-mvc tomcat


    【解决方案1】:

    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 看看会发生什么。

    希望有帮助

    【讨论】:

    • 谢谢文森特。抱歉,帖子中的配置行不正确,我现在更正了,但它应该是 bookings.properties。所以我认为它正在为文件寻找正确的名称,只是位置似乎不同。我会检查 $TOMCAT_DIR\bin\catalina.sh 看看里面有什么,也许这会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 2013-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-07
    • 1970-01-01
    • 1970-01-01
    • 2021-11-08
    相关资源
    最近更新 更多