1. maven 依赖
<!-- tomcat -->
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>jasper</artifactId>
<version>6.0.33</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>coyote</artifactId>
<version>6.0.33</version>
<scope>provided</scope>
</dependency>
<!-- datasource -->
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>dbcp</artifactId>
<version>6.0.33</version>
<scope>provided</scope>
</dependency>
2. 启动代码
public static void main(String[] args) throws Exception {
Embedded tomcat = new Embedded();
String baseDir = new File(".").getAbsolutePath();
// tomcat home自己新建一个,里面就只建一个webapps空目录
// 数据源配在context.xml里,可以从普通tomcat里拷贝过来
// 放一个默认的web.xml,从普通tomcat里拷贝过来
tomcat.setCatalinaHome(baseDir + "/src/test/resources/tomcat-home");
Engine engine = tomcat.createEngine();
engine.setName("Catalina");
// webapps建个空目录就可以
Host host = tomcat.createHost("localhost", tomcat.getCatalinaHome() + "/webapps");
host.setAutoDeploy(false);
engine.addChild(host);
engine.setDefaultHost(host.getName());
// 要在tomcat里启动的应用
Context ctxtRoot = tomcat.createContext("/xxxx", baseDir + "/src/main/webapp");
host.addChild(ctxtRoot);
tomcat.addEngine(engine);
// http
Connector httpConnector = tomcat.createConnector((String)null, 8080, false);
tomcat.addConnector(httpConnector);
// https
Connector httpsConnector = tomcat.createConnector((String)null, 8440, true);
httpsConnector.setProperty("keystoreFile", "......\\.keystore");
httpsConnector.setProperty("keystorePass", "******");
tomcat.addConnector(httpsConnector);
tomcat.start();
}
3. 目录结构