如果 unpackwar 设置为 false,则无法打开 spring 默认 hal 浏览器或 tomcat 中 jar 中的任何其他资源
not able to open spring default hal browser or any other resource inside jar in tomcat if unpackwar is set to false
您好,我正在使用 spring 数据剩余提供的 HAL 浏览器来查看我的 spring 数据剩余 HAL 基于 api。到目前为止,当我 运行 它通过 eclipse 或作为 spring 启动应用程序在我的本地进行测试。尽管当我在 tomcat 容器上部署 aws 时(作为 spring 启动 war)我当我浏览到 roor 或 hal 浏览器的地址 /browser/index.html#
时出现如下奇怪的错误
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Mon Aug 24 07:05:46 UTC 2015
There was an unexpected error (type=Internal Server Error, status=500).
Jar URL cannot be resolved to absolute file path because it does not reside in the file system: war:jar:file:/deployment/wars/hfds.1.3.war!/WEB-INF/lib/spring-data-rest-hal-browser-2.4.0.BUILD-SNAPSHOT.jar
我仍然无法找到有效的理由来说明为什么它无法找到提供的 hal 浏览器,尽管在本地一切正常。我是否遗漏了什么,有人可以帮忙吗。这是 [= 的错误吗31=] 框架或其他
更新
这似乎是一个特定于环境的问题,如 windows environmnet 我得到 url 文件:/.... 而 ein linux 我得到 war:jar:file由于 org.springframework.util.ResourceUtils
中的此代码部分导致了问题
public static File getFile(URL resourceUrl, String description) throws FileNotFoundException {
Assert.notNull(resourceUrl, "Resource URL must not be null");
if (!URL_PROTOCOL_FILE.equals(resourceUrl.getProtocol())) {
throw new FileNotFoundException(
description + " cannot be resolved to absolute file path " +
"because it does not reside in the file system: " + resourceUrl);
}
try {
return new File(toURI(resourceUrl).getSchemeSpecificPart());
}
catch (URISyntaxException ex) {
// Fallback for URLs that are not valid URIs (should hardly ever happen).
return new File(resourceUrl.getFile());
}
}
您好,在 Andy 的帮助下,终于找到解决方法是将 unpackwar 设置为 true 以使 HAL 浏览器正常工作。不确定这是强制性的,因此提出了 spring 启动问题在 https://github.com/spring-projects/spring-boot/issues/3826 进一步查看。但截至目前设置 upackwar=true 工作正常。
更新
这已在 4.2.2 和更高的 spring 版本中通过 https://jira.spring.io/browse/SPR-13393
修复
您好,我正在使用 spring 数据剩余提供的 HAL 浏览器来查看我的 spring 数据剩余 HAL 基于 api。到目前为止,当我 运行 它通过 eclipse 或作为 spring 启动应用程序在我的本地进行测试。尽管当我在 tomcat 容器上部署 aws 时(作为 spring 启动 war)我当我浏览到 roor 或 hal 浏览器的地址 /browser/index.html#
时出现如下奇怪的错误Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Mon Aug 24 07:05:46 UTC 2015
There was an unexpected error (type=Internal Server Error, status=500).
Jar URL cannot be resolved to absolute file path because it does not reside in the file system: war:jar:file:/deployment/wars/hfds.1.3.war!/WEB-INF/lib/spring-data-rest-hal-browser-2.4.0.BUILD-SNAPSHOT.jar
我仍然无法找到有效的理由来说明为什么它无法找到提供的 hal 浏览器,尽管在本地一切正常。我是否遗漏了什么,有人可以帮忙吗。这是 [= 的错误吗31=] 框架或其他
更新
这似乎是一个特定于环境的问题,如 windows environmnet 我得到 url 文件:/.... 而 ein linux 我得到 war:jar:file由于 org.springframework.util.ResourceUtils
中的此代码部分导致了问题public static File getFile(URL resourceUrl, String description) throws FileNotFoundException {
Assert.notNull(resourceUrl, "Resource URL must not be null");
if (!URL_PROTOCOL_FILE.equals(resourceUrl.getProtocol())) {
throw new FileNotFoundException(
description + " cannot be resolved to absolute file path " +
"because it does not reside in the file system: " + resourceUrl);
}
try {
return new File(toURI(resourceUrl).getSchemeSpecificPart());
}
catch (URISyntaxException ex) {
// Fallback for URLs that are not valid URIs (should hardly ever happen).
return new File(resourceUrl.getFile());
}
}
您好,在 Andy 的帮助下,终于找到解决方法是将 unpackwar 设置为 true 以使 HAL 浏览器正常工作。不确定这是强制性的,因此提出了 spring 启动问题在 https://github.com/spring-projects/spring-boot/issues/3826 进一步查看。但截至目前设置 upackwar=true 工作正常。
更新
这已在 4.2.2 和更高的 spring 版本中通过 https://jira.spring.io/browse/SPR-13393
修复