Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring PropertyPlaceHolderConfigure无法解析重复目录名下的属性文件-接收BeanDefinitionStoreException 使现代化_Java_Spring_Properties - Fatal编程技术网

Java Spring PropertyPlaceHolderConfigure无法解析重复目录名下的属性文件-接收BeanDefinitionStoreException 使现代化

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

我使用所描述的方法从“classpath:”和“classpath*:”打印出结果的java类路径,并得到了以下结果,但我仍然从PPC中获得了一个BeanDefinitionStoreException,该异常用于jms.properties文件中定义的属性。什么给你

[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中的一些属性,但这是可行的