2

我们正在将现有应用程序迁移到 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 时,这可以正常工作。理想情况下,这将与独立 Tomcat 中的DefaultServlet在将列表设置为 true 作为 init 参数时的行为方式相同。

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

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

提前致谢!

4

0 回答 0