我是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服务器上,该应用程序(称为预订)在此位置查找application.properties文件:
的/ usr /共享/ Tomcat的/ web应用/预订/ WEB-INF /类/配置
这是我期望的,看看Spring配置。
但是,在Production Tomcat上,应用程序在不同的位置查找:
的/ usr /共享/ Tomcat的/ lib中/配置
(在此目录中,该文件名为bookings.properties。
最初的开发人员离开了公司,我不知道为什么它会在文件的不同位置(以及不同的文件名)。
我能看到的任何想法,或者可以配置的地方?应该注意两个文件(application.properties和bookings.properties)都存在于两个Tomcat服务器上,所以我不明白这种差异吗?
我们已将相同的WAR文件重新部署到开发和生产中,并且差异仍然存在,即服务器仍然在不同的位置。
答案 0 :(得分:1)
here是一个可以放置一些资源的目录(为了简单起见,链接的更多细节)。 这是一个变量,它被添加到启动命令,有时它有点隐藏。但这就是它的工作方式。
您可以在$ 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以查看发生的情况。
希望这个帮助