J'ai une archive de guerre avec une application web. Je veux démarrer cette application dans mon application Spring Boot. J'ai donc suivi les conseils de that question:Comment étendre la guerre dans Tomcat embarqué de Spring Boot?
@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);
}
};
}
Cela fonctionne très bien, sauf la guerre ne soit pas extrait:
Impossible de créer le répertoire [/tmp/tomcat.9153500015669016883.8080/webapps/ Blog]
C'est la mise en page du répertoire de travail 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
Un breakpoint in ExpandWar.expand()
reveils qu'il veut créer un répertoire dans webapps /. Ce dossier Webapps non existant provient de Host.getAppBaseFile()
(qui provient du ContextConfig.context
).
Donc, pour moi, il semble que quelque chose est bizarre configuré et il devrait être étendu dans le travail/Tomcat/localhost/blog. Comment puis je faire ça?