如何使用Jetty在Spring Boot 2中启用目录列表

问题描述

我有带有bootty服务器的spring boot 2服务器,需要公开其中一个要通过url访问的目录。如何使用码头和弹簧靴子2做到这一点?我需要公开的目录在 / desiredDirectory中。我希望最终能够访问它baseurl / desiredDirectory // file

我尝试添加一个bean,但是当我尝试访问{basUrl} / desiredDirectory时返回404

@Bean
public ServletRegistrationBean servletRegistrationBean() {
    final DefaultServlet servlet = new DefaultServlet();
    final ServletRegistrationBean registrationBean = new ServletRegistrationBean(servlet,"/<desiredDirectory>/*");
    registrationBean.addInitParameter("listings","true");
    registrationBean.setLoadOnStartup(0);
    return registrationBean;
}

此外,在访问this之后,我可以为tomcat实现相同的功能。但是我无法绕过码头实施。

@Component
public class MyTomcatWebServerCustomizer implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> {

    @Override
    public void customize(TomcatServletWebServerFactory factory) {
        // customize the factory here
        TomcatContextCustomizer tomcatContextCustomizer = new TomcatContextCustomizer() {
            @Override
            public void customize(Context context) {

                
                context.setDocBase(
                        System.getProperty("user.dir"));
                Wrapper defServlet = (Wrapper) context.findChild("default");
                defServlet.addInitParameter("listings","true");
                defServlet.addInitParameter("readOnly","true");
                defServlet.addMapping("/" +desiredLocation + "*");
            }
       };
        factory.addContextCustomizers(tomcatContextCustomizer);

    }
}

但是,类似的码头实施尝试并没有给我相同的结果-实际上是404

@Component 公共类JettyWebServerCustomizer实现WebServerFactoryCustomizer {

    @Override
    public void customize(JettyServletWebServerFactory factory) {
        // customize the factory here
        JettyServerCustomizer jettyCustomizer = new JettyServerCustomizer() {
            @Override
            public void customize(Server server) {
                 DefaultServlet servlet = new DefaultServlet();
                 ServletRegistrationBean bean = new ServletRegistrationBean(servlet,System.getProperty("user.dir"));
                 bean.addInitParameter("listings","true");
                 bean.addUrlMappings("/" + desiredLocation + "/*");
                 server.addBean(bean);
            }
        };
        factory.addServerCustomizers(tomcatContextCustomizer);

    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...