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 /本地主機/博客。我怎樣才能做到這一點?