近期,涉及项目改造,遇到多个工程,jar包几乎一样,同时发布到同一个 Tomcat 下,重复加载jar包,Tomcat 启动很慢,尝试了一下共享jar包的方法,效果还可以。下面把几个关键点介绍一下。
一、准备工作
(1)Tomcat7.0.76
(2)Jdk1.6 及以上
(3)Eclipse,新建2个WEB工程 A 和 B
二、Tomcat下配置共享jar包
(1)建共享目录:
在 tomcat 的 lib 目录下,新建一个 shared 子目录,将共享jar包拷贝进去。
例如:C:\Tomcat7.0.76\lib\shared
(2)修改配置项:
在 tomcat 的 conf 目录下,找到 catalina.properties 文件,
修改配置 shared.loader=${catalina.base}/lib/shared/*.jar
或者追加 common.loader=原配置项略,${catalina.home}/lib/shared/*.jar
(3)发布程序:
在 tomcat 的 webapps 目录下,发布 A 和 B 工程,将2个工程中共用的jar包,
全部挪至 tomcat 的共享目录下。启动Tomcat,可以发布成功!
三、Eclipse 下执行2个工程
(1)如果是创建了 Servers 服务的,注意修改这里的 catalina.properties 文件,
修改配置 shared.loader=${catalina.home}/lib/shared/*.jar
或者追加 common.loader=原配置项略,${catalina.home}/lib/shared/*.jar
注意:这里设置 ${catalina.home} 很重要,我曾经设置为 ${catalina.base},
编译不报错,启动总是失败,提示找不到Spring的ContextLoaderListener 类等等。
(2)清空2个WEB工程的 WebContent 或 WebRoot 的WEB-INF下的lib目录,此时程序编译会报错,怎么办?
(3)编译报错,可以选中工程,右键选择属性【Properties】,在 Java Build Path-->Libraries 页签中,
点击【Add Library】按钮,在弹出的对话框中,选择【Server Runtime】,下一步直至将下图中的
【Apache Tomcat v7.0】加入到工程中来,展开该节点,可以看到Tomcat的lib目录下的Jar包,
包括共享Jar包都引入进来了,重新编译该工程即可。
(4)好了,准备工作做好之后,可以在Eclipse下启动Tomcat了,跟踪或运行都可以。
(5)万一,工程较大,数量较多,启动超过45秒,Eclipse 会报一个错,可以参考下面文章来解决!
参考地址:http://blog.csdn.net/roc1029/article/details/12649799