1. 前言
tomcat提供的Embedded类,允许程序员把tomcat的启动嵌入写到java方法里面启动。这给程序员提供了更为快速、方便的开发使用。下面简单介绍下如果集成tomcat的嵌入式启动。
2. 下载及配置
1) apache所有的开源框架可以到apache的资料库下载得到:http://archive.apache.org/dist/
2) 这里我们可以在如下网址下载到tomcat6:
http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.35/bin/apache-tomcat-6.0.35.zip
3) 将下载到的zip包解压到项目的根目录下,重命名为简短的tomcat6
4) 将tomcat6\lib里面的所有jar包引入到工程
将tomcat6\bin里面的tomcat-juli.jar包引入到工程(注:tomcat的启动依赖这个包,没有会报错)
3. 创建启动代码
package tomcat.start; import java.io.File; import org.apache.catalina.Context; import org.apache.catalina.Engine; import org.apache.catalina.Host; import org.apache.catalina.connector.Connector; import org.apache.catalina.startup.Embedded; public class TomcatStart { private static String CONTEXT_PATH = "/ngboss"; private static String PROJECT_PATH = System.getProperty("user.dir"); private static String WEB_APP_PATH = PROJECT_PATH + "/ngboss"; //工程的web根目录 private static String TOMCAT_HOME = PROJECT_PATH + "/tomcat6"; //Tomcat的工作目录 private static String ENCODING = "UTF-8"; private static int TOMCAT_PORT = 8080; //运行嵌入式Tomcat服务器 public static void startTomcat() throws Exception { try { Embedded tomcat = new Embedded(); // 设置Tomcat的工作目录 tomcat.setCatalinaHome(TOMCAT_HOME); // 创建启动引擎 Engine engine = tomcat.createEngine(); //engine.setName("Catalina"); // 创建Host,设置Host的工作目录 Host host = tomcat.createHost("localhost", tomcat.getCatalinaHome()); host.setAutoDeploy(true); // 创建Context,并加入Host中 Context context = tomcat.createContext(CONTEXT_PATH, WEB_APP_PATH); host.addChild(context); // 把Host加入Engine engine.addChild(host); engine.setDefaultHost(host.getName()); if (!new File(WEB_APP_PATH).exists()) { System.err.println("请检查应用的目录以及相关资源是否存在."); } // 把Engine加入Tomcat tomcat.addEngine(engine); // Tomcat加入Connector,监听本地(127.0.0.1)的访问 // tomcat.addConnector(tomcat.createConnector(InetAddress.getByName("127.0.0.1"), // port, false)); // 非本机访问 Connector connector = tomcat.createConnector((java.net.InetAddress) null, TOMCAT_PORT, false); connector.setURIEncoding(ENCODING); connector.setUseBodyEncodingForURI(true); tomcat.addConnector(connector); tomcat.start(); // 停住10小时 Thread.sleep(36000000); tomcat.stop(); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { try { TomcatStart.startTomcat(); } catch (Exception e) { e.printStackTrace(); } } }
4. 运行测试
运行TomcatStart,打开http://127.0.0.1:8080/ngboss/
This is my JSP page. 启动成功