您的位置:首页 > 运维架构 > Tomcat

Tomcat升級記

2008-09-02 04:53 309 查看

原文网址如下:http://amieeyang.spaces.live.com/blog/

今天上午與時俱進的升級了一下tomcat,將原來的5.0升級為了6.0.16版
首先的安裝過程就不順利,總是提醒我,

Failed to install Tomcat6 service
check your settings and permissions
Ignore and continue anyway

開始以為會是因為防毒軟件的關係,就把他們都關掉了,但是依然如此,
忽略后安裝完成時,服務是啟動不了的,Orz
搜尋了一下錯誤原因,從網上找到說,可能是因為之前安裝有Tomcat5.x版的緣故,
需要卸載掉原有版本后,才能后重新安裝。
照做,一切順利了...
之前只是耳聞,datasource的部分不是很一樣
但一開始,還是想試試看,結果就將原來的server.xml中的Context內容先copy過去嘗試,果真不行
啟動后會出現諸如此類的警告信息,server無法啟動:
2008-4-1512:52:32 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'debug' to '5' did not find a matching property.
2008-4-15 12:52:32 org.apache.tomcat.util.digester.Digester endElement
警告: No rules found matching 'Server/Service/Engine/Host/Context/ResourceParams/parameter/name'.
2008-4-15 12:52:32 org.apache.tomcat.util.digester.Digester endElement
警告: No rules found matching 'Server/Service/Engine/Host/Context/ResourceParams/parameter/value'.
2008-4-15 12:52:32 org.apache.tomcat.util.digester.Digester endElement
警告: No rules found matching 'Server/Service/Engine/Host/Context/ResourceParams/parameter'.
...
無奈只能查找和Tomcat6的Context有關的內容,
發現一位網友desert寫的Tomcat 6多应用的Context配置還是很有借鑒價值的
轉述一下:


这几天一直在看tomcat 6的有关内容,在其文档中看到tomcat 5,6关于context的配置不同于tomcat 4,不推荐在server.xml中进行配置,在context.xml文件中进行配置才是更好的方法。回想以前所有的项目都是在server.xml中配置context的,每次部署一个新的应用或者修改context内容都要重新启动tomcat,导致应用总是要中断服务一小段时间,比较不方便,而且多个context都在server.xml中,显得有些杂乱。于是决定使用在context.xml中进行配置应用的方式。在tomcat_home/ conf目录下有一个context..xml文件,修改其中内容之后,tomcat 能够自动reload所有的应用。
我的应用是在 tomcat_home/webapps下部署了多个应用,这多个应用的context配置是不同的。于是我把原来server.xml有关 context的部分(多个)复制出来,粘贴到context.xml中,保存之后,启动tomcat ,发现启动的时候出错,看来tomcat是不支持在一个context.xml中配置多个不同应用的。上网上google有关在context.xml中配置多个应用的方法,遗憾的是,始终无法找到。后来仔细阅读tomcat 文档,终于找到了解决方法,在应用下面的META-INF文件夹下建立context.xml文件就可以满足应用的定制需求。具体路径就是: tomcat_home/webapps/yourApp/META-INF/context.xml,这样每个应用都可以拥有各自的配置,修改了该文件中的内容,tomcat可以自动重新装载该应用,非常的方便。下面是一个可以自动重新装载servlet和javabean(方便debug),带有数据库连接池(以Oracle为例)的context.xml文件内容:
<?xml version="1.0" encoding="UTF-8"?>
<Context reloadable="true" crossContext="true">
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->
<Resource name="jdbc/myoracle" auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:mysid"
username="scott"
password="tiger"
maxActive="20"
maxIdle="10"
maxWait="-1"/>
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_DBTest_log." suffix=".txt" timestamp="true" />
<Valve className="org.apache.catalina.valves.AccessLogValve"
prefix="localhost_access_log." suffix=".txt" pattern="common" />
</Context>”
閱讀后發現,我們之前也果然是將很多的Context配置在同一個server.xml下;
隨即照此方法去嘗試,果然好了很多,那些警告不在出現了...
但是,卻提示
”Cannot load JDBC driver class 'oracle.jdbc.OracleDriver' 等“,顯然沒有找到driver 啦
遂將有關驅動的jar copy到//Tomcat 6.0/lib目錄下面。
再試,終於ok了,^^
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: