我有一个Spring启动Web应用程序(嵌入式Jetty Server)。所有Java代码和资源都打包在JAR中并部署在服务器上。但是,JAR外部有一个JSON文件,但它位于类路径中。 即
我的classpath是:/ usr / local / myserver /
JSON文件位于:/usr/local/myserver/hello.json
JAR位于:/usr/local/myserver/app.jar
当我点击网址时:https://IP:port/hello.json它会给我找不到" 404文件"。 提到的IP是存在所有文件和JAR的服务器。我相信默认资源路径是/ static / ..它在JAR中。那个'静态'中的任何文件目录可以访问。
我已配置:
@Configuration
@AutoConfigureAfter(DispatcherServletAutoConfiguration.class)
public class StaticResourceConfiguration extends WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/hello.json").addResourceLocations("file://localhost/usr/local/myserver/");
}
如何访问JSON文件?
答案 0 :(得分:0)
如果“JSON
”文件已在classpath
中,那么为什么不使用classpath:
前缀
classpath:/usr/local/myserver/
如果你使用file:/
前缀,那么它使用URL类加载JSON file
所以基本上你需要提供绝对路径位置,如
如果是windows
file:/usr/local/myserver
答案 1 :(得分:0)
你需要使用"文件://"前缀+文件系统上的绝对目标" / usr / local / myserver /"。
registry.addResourceHandler("/hello.json")
.addResourceLocations("file:///usr/local/myserver/");