以内嵌方式运行tomcat 6.0

测试环境:
tomcat-6.0.14
ubuntu gusty
sun-jdk-1.6

多个人合作的项目里只要修改tomcat-conf.properties文件后即可使用。我这里用了slf4j做LOG,不用LOG的把相关类去掉即可。还有我是把tomcat/lib下的jar都加进classpath的。

目录结构
/-|projectHome
  |
  |--src
  |   |--TomcatServer.java
  |   |--tomcat-conf.properties
  |
  |--webapp
  |   |--WEB-INF
  |   |   |-web.xml

TomcatServer.java:
 1 /**
 2  * 
http://www.blogjava.net/jarod
 3  * @author jarod
 4  */
 5 public class TomcatServer {
 6 
 7     private static final Logger logger = LoggerFactory.getLogger(TomcatServer.class);
 8 
 9     public static void main(String[] args) {
10         try {
11             new TomcatServer();
12         } catch (Throwable t) {
13             logger.error("", t);
14         }
15     }
16 
17     private Embedded tomcat;
18 
19     // tomcat根目录路径
20     private String catalinaHome;
21 
22     // web项目所在路径
23     private String projectHome;
24 
25     public TomcatServer() {
26         initConf();
27 
28         tomcat = new Embedded();
29         tomcat.setCatalinaHome(catalinaHome);
30         Engine engine = tomcat.createEngine();
31         Host host = tomcat.createHost("localhost", projectHome);
32         host.addChild(tomcat.createContext("", ""));
33         host.addChild(tomcat.createContext("/", "webapp"));
34         engine.addChild(host);
35         engine.setDefaultHost("localhost");
36         tomcat.addEngine(engine);
37         tomcat.addConnector(tomcat.createConnector("", 8081, false));
38         registerShutdownHook();
39         try {
40             tomcat.start();
41         } catch (Exception e) {
42             throw new RuntimeException(e);
43         }
44     }
45 
46     private void initConf() {
47         Properties properties = new Properties();
48         try {
49             properties.load(TomcatServer.class.getResourceAsStream("/tomcat-conf.properties"));
50             catalinaHome = properties.getProperty("catalina.home");
51 
52             File f = new File(".");
53             projectHome = f.getAbsolutePath();
54         } catch (IOException e) {
55             throw new RuntimeException(e);
56         }
57     }
58 
59     private void registerShutdownHook() {
60         Runtime.getRuntime().addShutdownHook(new Thread() {
61             @Override
62             public void run() {
63                 try {
64                     tomcat.stop();
65                 } catch (LifecycleException e) {
66                     throw new RuntimeException(e);
67                 }
68             }
69         });
70     }
71 }

tomcat-conf.properties:
catalina.home=/home/jarod/server/tomcat/apache-tomcat-6.0.14

为什么要setCatalinaHome?
设了该值,tomcat启动时会在该目录加载默认的一些配置,如MIME mapping等,如果要自己手动添加配置太麻烦了,而如果不要这些配置,这个embedded tomcat用处也不大

引用:http://tech.it168.com/j/2007-12-20/200712201500982.shtml

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值