是否可以在Spring Boot应用程序中启用目录列表?

时间:2015-12-18 22:21:08

标签: java spring tomcat spring-boot embedded-tomcat-8

我们正在将现有应用程序迁移到Spring Boot。有问题的应用程序(Genie)充当Hadoop或Presto等数据处理集群的分布式可扩展客户端。因此,我们需要将查询结果输出到磁盘并允许用户访问其数据。在过去,我们通过在Tomcat中启用目录列表来完成此操作,我们将部署战争并允许用户使用DefaultServlet浏览和访问其文件。

我尝试使用资源处理程序导出目录,如下所示:

@SpringBootApplication
public class GenieWeb extends WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter {

    // Other configuration

    @Override
    public void addResourceHandlers(final ResourceHandlerRegistry registry) {
        super.addResourceHandlers(registry);

        final String myExternalFilePath = "file:///path/to/dir/";

        registry
            .addResourceHandler("/urlPath/*")
            .setCachePeriod(0)
            .addResourceLocations(myExternalFilePath);
    }
}

当资源的URI已知但任何对目录的请求返回404时,这样可以正常工作。理想情况下,当列表设置为true作为init时,此行为与独立Tomcat中DefaultServlet的行为相同参数。

我已经尝试了各种方法来访问Tomcat配置和特别是DefaultServlet但是没有运气通过典型的"列表"属性。

过多的搜索没有发现任何结果,所以我很好奇是否有人知道这是否可能在我辞职之前回到WAR构建或面向Apache。我不想这样做的主要原因是尽可能轻松地部署我们的应用程序,并且将一个自包含在一个jar文件中的内容具有很大的吸引力。

提前致谢!

0 个答案:

没有答案