Spring 'native' 模式下的云配置服务器在 Windows 环境中无法正常工作
Spring Cloud Config Server in 'native' mode doesn't quite work in Windows environment
得到我需要的 OSX。在 Windows,事情有些不妙。
我正在使用 'native' 模式在多个服务(spring 云客户端)之间共享本地属性文件。我有:
-Dspring.cloud.config.server.native.searchLocations=C:/Development/SVN/WSR_20150711/wsr-config/config/
并且 C:\Development\SVN\WSR_20150711\wsr-config\config\wsr\wsr-dev.properties
存在。但是当我通过 URI /wsr/dev/wsr
指定资源时,看起来 spring 云配置服务器没有获取这个文件——它在 OSX 和 Linux.[=24= 中工作]
我仔细研究了一下,发现 NativeEnvironmentRepository
第 135 - 158 行的代码可能存在一些问题:
if (normal.startsWith("file:")) {
normal = new File(normal.substring("file:".length()))
.getAbsolutePath();
}
for (String pattern : StringUtils
.commaDelimitedListToStringArray(getLocations(searchLocations,
result.getLabel()))) {
if (!pattern.contains(":")) {
pattern = "file:" + pattern;
}
if (pattern.startsWith("file:")) {
pattern = StringUtils.cleanPath(new File(pattern
.substring("file:".length())).getAbsolutePath()) + "/";
}
if (logger.isTraceEnabled()) {
logger.trace("Testing pattern: " + pattern
+ " with property source: " + name);
}
if (normal.startsWith(pattern)
&& !normal.substring(pattern.length()).contains("/")) {
matches = true;
break;
}
}
看起来像通过新的 File(..).getAbsolutePath()
位强制 'normal' 强制斜线从 /
更改为 \
(有时 \
) ,因此不匹配 patten 变量(在下一个 for 循环中创建)。
在调试模式下,我可以看到 pattern 设置为 C: /Development/SVN/WSR_20150711/wsr-config/config/
而 normal 设置为 C:\Development\SVN\WSR_20150711\wsr-config\config\wsr\wsr-dev.properties
.
想法?我们有机会尽快解决这个问题吗?
这是一个已修复的已知问题。参见 https://github.com/spring-cloud/spring-cloud-config/issues/150
得到我需要的 OSX。在 Windows,事情有些不妙。
我正在使用 'native' 模式在多个服务(spring 云客户端)之间共享本地属性文件。我有:
-Dspring.cloud.config.server.native.searchLocations=C:/Development/SVN/WSR_20150711/wsr-config/config/
并且 C:\Development\SVN\WSR_20150711\wsr-config\config\wsr\wsr-dev.properties
存在。但是当我通过 URI /wsr/dev/wsr
指定资源时,看起来 spring 云配置服务器没有获取这个文件——它在 OSX 和 Linux.[=24= 中工作]
我仔细研究了一下,发现 NativeEnvironmentRepository
第 135 - 158 行的代码可能存在一些问题:
if (normal.startsWith("file:")) {
normal = new File(normal.substring("file:".length()))
.getAbsolutePath();
}
for (String pattern : StringUtils
.commaDelimitedListToStringArray(getLocations(searchLocations,
result.getLabel()))) {
if (!pattern.contains(":")) {
pattern = "file:" + pattern;
}
if (pattern.startsWith("file:")) {
pattern = StringUtils.cleanPath(new File(pattern
.substring("file:".length())).getAbsolutePath()) + "/";
}
if (logger.isTraceEnabled()) {
logger.trace("Testing pattern: " + pattern
+ " with property source: " + name);
}
if (normal.startsWith(pattern)
&& !normal.substring(pattern.length()).contains("/")) {
matches = true;
break;
}
}
看起来像通过新的 File(..).getAbsolutePath()
位强制 'normal' 强制斜线从 /
更改为 \
(有时 \
) ,因此不匹配 patten 变量(在下一个 for 循环中创建)。
在调试模式下,我可以看到 pattern 设置为 C: /Development/SVN/WSR_20150711/wsr-config/config/
而 normal 设置为 C:\Development\SVN\WSR_20150711\wsr-config\config\wsr\wsr-dev.properties
.
想法?我们有机会尽快解决这个问题吗?
这是一个已修复的已知问题。参见 https://github.com/spring-cloud/spring-cloud-config/issues/150