This code works with Tomcat 8.0:
File catalinaHome = new File("..."); // folder must exist
Tomcat tomcat = new Tomcat();
tomcat.setPort(8080); // HTTP port
tomcat.setBaseDir(catalinaHome.getAbsolutePath());
tomcat.getServer().addLifecycleListener(new VersionLoggerListener()); // nice to have
You have now two options. Automatically deploy any web app in catalinaHome/webapps
:
// This magic line makes Tomcat look for WAR files in catalinaHome/webapps
// and automatically deploy them
tomcat.getHost().addLifecycleListener(new HostConfig());
Or you can manually add WAR archives. Note: They can be anywhere on the hard disk.
// Manually add WAR archives to deploy.
// This allows to define the order in which the apps are discovered
// plus the context path.
File war = new File(...);
tomcat.addWebapp("/contextPath", war.getAbsolutePath());
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…