註:還有一點問題,這個版本的 context.xml 檔案怎麼都無法修改,它說檔案是唯讀,但是屬性中並非如此,所以,對於該檔案的那個
raloadable="true" ,沒有進行修改
PS:點擊 Tomcat 檔案夾下 的 startup.bat 是啟動 Tomcat 伺服器的一種方式,但是要注意命令提示字元中顯示的資訊,它可能說出了什麼錯誤,而且很嚴重,
但是它並沒有影響我們開啟 歡迎介面,這種情況下並不能將問題忽略,例如我剛開始的那個版本就要很多問題,但是沒什麼影響,而且看視頻,那個老師好像也有問題,
所以就導致了這麼多悲劇啊!
以下是問題解決過程中找到的一些還蠻有用的文章,留著以後方便解決問題,呵呵呵
相關內容的引文
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
引用地址:http://blog.csdn.net/xttgx/archive/2009/11/15/4813044.aspx CSDN部落格
關於tomcat啟動後馬上又自動關閉的問題
今天費了一點時間找我tomcat在myeclipse裡面能啟動,而我直接點擊tomcat檔案夾裡面的tomcat5.exe或satartup.bat卻無法啟動的原因。
從tomcat日誌裡面看到的錯誤是:[2009-11-15 16:02:05] [924 prunsrv.c] [error] Failed creating java ;
[2009-11-15 16:02:05] [1179 prunsrv.c] [error] ServiceStart returned 1。把這兩句話剪貼出來Google,答案是說要把一個什麼
mvcr71.ddl檔案放到windows的system32裡面,我把所說的檔案下下來,然後複製進去,提示裡面有這個檔案,而且修改日期我這個更新,於是我放棄了複製.
有人說是jdk的原因,myeclipse能啟動是因為myeclipse用的是內建的jre,jdk的jre可能有問題,我試著備份了jdk裡面的jre檔案,
然後把myeclipse的jre檔案複製覆蓋了jdk裡面的jre,運行tomcat的startup還是不行。
於是乎,再看看另外的留言,借來一點靈感:dos--cmd--d:--cd tomcat/bin--startup.bat,斷行符號之後出現這樣的提示:
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program
帶著這兩個問題Google,得到了一條有用的訊息:JAVA_HOME 是特殊的變數.大多數情況是不需要的,但是如果你裝一些伺服器軟體或者開發工具,比如tomcat或者ant等等,就需要了。
於是乎,我配置了一下JAVA_HOME的環境變數,結果再運行startup.bat,yeah!ok!
在此附上jdk的環境變數配置方法:
變數名JAVA_HOME 賦值“<JDK安裝路徑目錄>”,如我的是“C:\JDK;”;
變數名CLASSPATH 賦值“.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;”;
(*注意,%JAVA_HOME%可以由<JDK安裝路徑目錄>替換。其實%JAVA_HOME%就是上面的變數。)
變數PATH賦值“%JAVA_HOME%\bin;”;
例如: 這是jdk的位置:D:\jdk1.5.0
配置環境變數:
JAVA_HOME: D:\jdk1.5.0
PATH: D:\jdk1.5.0\bin;
CLASSPATH: .;D:\jdk1.5.0\lib\tools.jar;
看了之後,我修改了我的 Java 環境,但還是沒有成功!
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
引文地址:http://www.oelandau.com/viewnews-5648
問題如下:
安裝上tomcat後,啟動可以成功,Welcome頁面可以進入,之後關閉tomcat,在MyEclipse->service中配置好tomcat後可以啟動,
再啟動電腦上的tomcat就會遇見啟動後自動關閉的問題了。
解決措施如下:
MyEclipse->service啟動tomcat後查看連接埠就會發現javaw會佔用8080,8005,8009連接埠,以至於tomcat預設的連接埠全都被佔用,
電腦上的tomcat就無法啟用了,處理措施就是把tomcat安裝檔案下conf中的server.xml中的連接埠8080,8005,8009全都改掉(如改為8006,8007,8008),
這樣子啟動tomcat問題就解決了,查看連接埠8080,8005,8009,8006,8007,8008都處於listening狀態,全無關tomcat與jdk版本衝突問題,
之前用MyEclipse7.0時並沒有遇見此問題,此次用MyEclipse8.5,MyEclipse6.0都遇見此問題了,記於此處以備後用!
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
引文地址:http://blog.csdn.net/hansoft/archive/2006/04/01/647060.aspx CSDN 部落格
運行多個tomcat執行個體兩法
如果需要把一個alpha版的web應用部署到一台機器上的tomcat中作測試,而這台機器上的tomcat同時還運行著其他的一些比較重要的web應用,你會怎麼做?
顯然不能簡單地把它和重要的web應用放在一起,那樣的話alpha版應用的崩潰會同時使其他應用也不能工作,因為它們是運行在同一個JVM上的。
這時應該安裝另外一份tomcat,使alpha版的應用在該tomcat裡運行,這時需要修改conf/server.xml使兩個tomcat佔用的連接埠不相同,
在預設配置的情況下,tomcat使用了三個連接埠:
- shutdown連接埠: <Server port="8005" shutdown="SHUTDOWN">
- http連接埠:<Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />
- AJP連接埠:<Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
這樣,不僅兩個tomcat裡的應用不會互相影響,而且兩個tomcat程式也可以分別升級。但是如果我們希望兩組web應用分別運行在不同的JVM上,
但是使用的tomcat版本又必須一致,這種方法就稍顯麻煩,因為如果要升級tomcat版本就必須同時升級兩個。其實tomcat是可以在一個程式版本上運行多個instance的:
tomcat有個環境變數CATALINA_BASE,用來指定一個目錄,tomcat是依據該目錄的內容來實現大部分的啟動工作的,包括我們最關心的web app的載入,該目錄由conf,logs,shared,webapps,work,temp子目錄組成。這樣,為每個instance建立一個目錄,配置好其內容(注意同樣要修改server.xml使連接埠不一樣),
然後在啟動每個instance時使CATALLINA_BASE指向該instance對應的目錄,就能實現啟動多個instance的目的。可以在instance對應的目錄下寫一個startup.bat來完成
該instance的啟動工作,該指令碼使用指令碼所在的目錄作為CATALINA_BASE,可以在從任何目錄下運行,並且保留了tomcat啟動指令碼的參數:
@echo off set CMD_LINE_ARGS= :setArgs if ""%1""=="""" goto doneSetArgs set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
shift goto setArgs :doneSetArgs set EXECUTABLE=%CATALINA_HOME%\bin\startup.bat set CATALINA_BASE=%~dp0
call "EXECUTABLE" %CMD_LINE_ARGS%
是個高手寫的,寫的很好,可是就是看不懂啊,簡單地說就是改連接埠號碼,下面就清楚了
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
引文地址:http://blog.csdn.net/jiaxy917/archive/2008/10/15/3075713.aspx CSDN部落格
兩個tomcat都用的是zip檔案
安裝第二個Tomcat完成後,到安裝目錄下的conf子目錄中開啟server.xml檔案,尋找以下三處:
(1) 修改http訪問連接埠(預設為8080連接埠) <Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="8080"
minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="100" debug="0" connectionTimeout="20000"
useURIValidationHack="false" disableUploadTimeout="true" />
(大概在86行左右)將8080修改為第一個tomcat不在使用的連接埠號碼。此處所設的連接埠號碼即是以後訪問web時所用的連接埠號碼。
(2) 修改Shutdown連接埠(預設為8005連接埠) <Server port="8005" shutdown="SHUTDOWN" debug="0">
(大概在13行左右)將8005修改為沒有在使用的連接埠號碼,例如8095
(3) 修改JVM啟動連接埠(預設為8009連接埠) < Connector className ="org.apache.coyote.tomcat4.CoyoteConnector"
port ="8009" minProcessors ="5" maxProcessors ="75"
enableLookups ="true" redirectPort ="8443"
acceptCount ="10" debug ="0" connectionTimeout ="20000"
useURIValidationHack ="false"
protocolHandlerClassName ="org.apache.jk.server.JkCoyoteHandler" />
(大概在107行左右)將8009修改為沒有在使用的連接埠號碼,例如8099