问题描述
我有带有bootty服务器的spring boot 2服务器,需要公开其中一个要通过url访问的目录。如何使用码头和弹簧靴子2做到这一点?我需要公开的目录在
我尝试添加一个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 (将#修改为@)