Tomcat
1、下載源碼,並解壓文件,例如:E:\Programe\javaWorkShop\OA\Tomcat6
2、新建項目Java Project
3、從File System中導入

4、配置source

5、添加依賴包,我都是從eclipse插件中找到
主要包如下:

添加依賴后,基本上錯誤都消失
6、copy 文件:build.properties.default。並修改名稱為build.properties,修改配置項:
base.path=E:/Programe/javaWorkShop/OA/Tomcat6/share
7、打開ant視圖,打開build.xml

執行download。會下載依賴的文件到share目錄:

8、執行deploy,將會生成output目錄:

9、找到類:Bootstrap.java
右鍵配置運行參數:"-Dcatalina.home=E:/Programe/javaWorkShop/OA/Tomcat6/output/build"

10、運行,和平時運行startup.bat一樣的結果:
2012-7-1 20:50:50 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-8080
2012-7-1 20:50:50 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8009
2012-7-1 20:50:50 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/15 config=null
2012-7-1 20:50:50 org.apache.catalina.startup.Catalina start
信息: Server startup in 447 ms
FAQ:
1、出錯信息:
嚴重: Error configuring application listener of class listeners.SessionListener
java.lang.ClassNotFoundException: listeners.SessionListener
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1200)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3769)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4335)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:919)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:882)
原因:這個是因為在webapp下面的example例子中的web.xml文件配置了Listener
java.lang.ClassNotFoundException: listeners.SessionListener
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1200)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3769)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4335)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:919)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:882)
原因:這個是因為在webapp下面的example例子中的web.xml文件配置了Listener
<!-- Define example application events listeners -->
<listener>
<listener-class>listeners.ContextListener</listener-class>
</listener>
<listener>
<listener-class>listeners.SessionListener</listener-class>
</listener>
<listener>
<listener-class>listeners.ContextListener</listener-class>
</listener>
<listener>
<listener-class>listeners.SessionListener</listener-class>
</listener>
有人說刪除這個例子就可以運行,但是這個不是根本解決方法,經過分析,我發現是運行deploy時失敗導致,只有成功deploy就可以正常運行
2、不設置"-Dcatalina.home=E:/Programe/javaWorkShop/OA/Tomcat6/output/build"是否可以?
答:不行,啟動時需要讀取conf/server.xml等,需要依賴lib包等,必須設置
參考: