我们正在将现有应用程序迁移到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文件中的内容具有很大的吸引力。
提前致谢!