1
我有一个Web应用程序的战争档案。我想在我的Spring Boot应用程序中启动该应用程序。所以我也跟着从that question建议:如何在Spring Boot的嵌入式tomcat中扩展战争?
@Bean
public EmbeddedServletContainerFactory servletContainerFactory() {
return new TomcatEmbeddedServletContainerFactory() {
@Override
protected TomcatEmbeddedServletContainer getTomcatEmbeddedServletContainer(Tomcat tomcat) {
try {
tomcat.addWebapp("blog", "/tmp/roller.war");
} catch (ServletException ex) {
throw new IllegalStateException("Failed to add webapp", ex);
}
return super.getTomcatEmbeddedServletContainer(tomcat);
}
};
}
这工作得很好,除了战争没有得到提取:
无法创建目录[/tmp/tomcat.9153500015669016883.8080/webapps/博客]
这是Tomcat的工作目录的布局:
$ find /tmp/tomcat.9153500015669016883.8080/
/tmp/tomcat.9153500015669016883.8080/
/tmp/tomcat.9153500015669016883.8080/work
/tmp/tomcat.9153500015669016883.8080/work/Tomcat
/tmp/tomcat.9153500015669016883.8080/work/Tomcat/localhost
/tmp/tomcat.9153500015669016883.8080/work/Tomcat/localhost/blog
/tmp/tomcat.9153500015669016883.8080/work/Tomcat/localhost/ROOT
A breakpoint in ExpandWar.expand()
表示它想要在webapps /中创建一个目录。这个不存在的webapps文件夹取自Host.getAppBaseFile()
(来自ContextConfig.context
)。
对我来说,它看起来像是奇怪的配置,它应该扩展到工作/ Tomcat /本地主机/博客。我怎样才能做到这一点?