Java Spring PropertyPlaceHolderConfigure无法解析重复目录名下的属性文件-接收BeanDefinitionStoreException 使现代化
我使用所描述的方法从“classpath:”和“classpath*:”打印出结果的java类路径,并得到了以下结果,但我仍然从PPC中获得了一个BeanDefinitionStoreException,该异常用于jms.properties文件中定义的属性。什么给你Java Spring PropertyPlaceHolderConfigure无法解析重复目录名下的属性文件-接收BeanDefinitionStoreException 使现代化,java,spring,properties,Java,Spring,Properties,我使用所描述的方法从“classpath:”和“classpath*:”打印出结果的java类路径,并得到了以下结果,但我仍然从PPC中获得了一个BeanDefinitionStoreException,该异常用于jms.properties文件中定义的属性。什么给你 [main] INFO - .......Loading........ [main] INFO - printing normal classpath [main] INFO - class path resource [con
[main] INFO - .......Loading........
[main] INFO - printing normal classpath
[main] INFO - class path resource [conf/dev/jgroups.properties]
[main] INFO - printing wildcard classpath
[main] INFO - URL [jar:file:/filepath/StandaloneProject.jar!/conf/dev/jgroups.properties]
[main] INFO - URL [jar:file:/filepath/DependencyProject.jar!/conf/dev/jdbc.properties]
[main] INFO - URL [jar:file:/filepath/DependencyProject.jar!/conf/dev/jms.properties]
它在我的windows机器上运行良好。它在我的开发linux设备上失败了???如果您没有实际的答案,但可以指导我如何调试正在发生的事情,我们将非常感谢您的帮助
更新#2
我还尝试添加
<property name="ignoreUnresolvablePlaceholders" value="true" />
到我的EncryptablePropertyPlaceHolderConfigure的属性列表,但我仍然得到BeanDefinitionStoreException:(
出身背景
我正在使用一个独立的java maven项目,该项目包含另一个作为依赖项的项目。包含的项目是一组核心类,并且具有每个环境的属性文件
这些文件在打包到依赖项jar(我们称之为DependencyProject)之前存储在main/resources/conf/[env]中
现在,我正在尝试使用jGroups跨多台服务器群集我的应用程序。这需要在StandaloneProject的属性之外,向StandaloneProject添加特定于环境的属性文件,以便jGroups知道在每个环境中需要与哪个地址和端口通信。这些属性不属于DependencyProject我想我会把它们放在StandaloneProject下的一个配置路径中,并使用相同的文件夹名,这样做既美观又一致。每个人都喜欢一致性,对吗
到目前为止,我得到的是如下所示的文件夹:
DependencyProject/src/main/resources/conf/[env]
(这些文件夹包含jms.properties、jdbc.properties等文件) 及
StandaloneProject/src/main/resources/conf/[env]
(这些文件夹包含jgroups.properties文件) DependencyProject在PropertyPlaceHolderConfigure中声明以下位置:
classpath*:conf/${implementation.env}/*.properties
我不打算用Spring加载jGroups属性文件。我在应用程序执行中采用了老式的方式
问题
一个简单的事实是conf/[env]有一个重复的目录路径,这导致了某个地方的冲突,并且没有从DependencyProject加载属性,但没有效果。我也尝试过使用IgnoreUnsolvablePlaceholder,但我不确定这是正确的解决方案
我知道这与文件夹结构有关,因为我可以插入一个文件夹,这样两个路径就不会相互镜像,而且一切正常
dependencProject/src/main/resources/conf/[env]
StandaloneProject/src/main/resources/conf/folder/[env]
有什么想法吗?我最后只是在我的conf文件夹下放了一个jgroups文件夹。我希望所有内容都放在/conf目录下,而不是放在/conf和/conf/jgroups中的一些属性,但这是可行的