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

Java 是否可以在Spring启动应用程序中启用目录列表?,java,spring,tomcat,spring-boot,embedded-tomcat-8,Java,Spring,Tomcat,Spring Boot,Embedded Tomcat 8,我们正在将现有应用程序迁移到Spring Boot。所讨论的应用程序()充当Hadoop或Presto等数据处理集群的分布式、可伸缩客户机。因此,我们需要将查询结果输出到磁盘,并允许用户访问其数据。在过去,我们通过在Tomcat中启用目录列表来实现这一点,我们将在其中部署war,并允许用户使用DefaultServlet浏览和访问他们的文件 我尝试使用如下资源处理程序导出目录: @SpringBootApplication public class GenieWeb extends WebMvc

我们正在将现有应用程序迁移到Spring Boot。所讨论的应用程序()充当Hadoop或Presto等数据处理集群的分布式、可伸缩客户机。因此,我们需要将查询结果输出到磁盘,并允许用户访问其数据。在过去,我们通过在Tomcat中启用目录列表来实现这一点,我们将在其中部署war,并允许用户使用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时,这可以正常工作。理想情况下,当listings作为init参数设置为true时,这与独立Tomcat中的行为相同

我尝试了各种方法来访问Tomcat配置,特别是DefaultServlet,但没有通过典型的“listing”属性启用目录列表

过度的搜索并没有得到任何结果,所以我很好奇,在我回到战争构建或与Apache合作之前,是否有人知道这是可能的。我不想这样做的主要原因是为了尽可能轻松地部署我们的应用程序,让所有内容都包含在一个jar文件中非常有吸引力


提前谢谢

如果Tomcat的DefaultServlet完成了这项工作,您是否尝试过在应用程序中与适当配置的ServletRegistrationBean一起使用它?@AndyWilkinson是的,我尝试过:
@Bean public ServletRegistrationBean ServletRegistrationBean(){final DefaultServlet=new DefaultServlet();final ServletRegistrationBean bean=new ServletRegistrationBean(servlet,“/{location}/*”);bean.addInitParameter(“listings”,“true”);bean.setLoadOnStartup(1);return bean;}
但是我看不到将URL映射到该API中磁盘上的位置的方法。我还尝试配置Tomcat工厂来添加webapp<代码>tomcat.addWebapp(“/URL”,“/location/on/disk”)到目前为止运气不佳请参阅以下解决方案