1、下载apache-tomcat-8.5.37-embed.zip。
https://tomcat.apache.org/download-80.cgi
2、解压缩,把以下jar加入到项目lib目录。tomcat.8080是tomcat自动生成的。logs是log4j自动生成的。


3、测试1。http://localhost:8088/esb/hi
package embed;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.catalina.Context;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.startup.Tomcat;
public class EmbedTomcat {
@SuppressWarnings("deprecation")
public static void main(String[] args) {
Tomcat tomcat = new Tomcat();
HttpServlet servlet = new HttpServlet() {
private static final long serialVersionUID = 3705103604036678076L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.getWriter().write("a embeded tomcat");
}
};
Context ctx = tomcat.addContext("/esb", null);
Tomcat.addServlet(ctx, "/hi", servlet);
ctx.addServletMapping("/hi", "/hi");
try {
tomcat.setPort(8088);
tomcat.init();
tomcat.start();
tomcat.getServer().await();
} catch (LifecycleException e) {
e.printStackTrace();
}
}
}
4、测试2。http://localhost:8088/api/user_list
“C:\\java\\api”指定web目录。
package embed;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.catalina.Context;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.startup.Tomcat;
public class EmbedTomcat {
@SuppressWarnings("deprecation")
public static void main(String[] args) {
Tomcat tomcat = new Tomcat();
try {
// http://localhost:8088/api/user_list
tomcat.addWebapp("/api", "C:\\java\\api");
tomcat.setPort(8088);
tomcat.init();
tomcat.start();
tomcat.getServer().await();
} catch (LifecycleException e) {
e.printStackTrace();
}
}
}