天天看點

tomcat對于context.xml的配置報錯問題

警告: [SetPropertiesRule] Setting property 'source' to

在 eclipse GANYMEDE中apache- tomcat-6.0.16加載工程後,啟動伺服器就會出現如下的紅色警告資訊,真是讓人不爽:

2008-10-11 21:33:55 org.apache. tomcat.util.digester.SetPropertiesRule begin

警告: [SetPropertiesRule] Setting property 'source' to 'org. eclipse.jst.jee.server:TestTomcat6.0.16' did not find a matching property.

2008-10-11 21:33:55 org.apache.catalina.core.AprLifecycleListener init

資訊: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\study tools\Java\jdk1.5.0_06\bin;.;C:\WINDOWS\system32;C:\WINDOWS;D:/study tools/Java/jdk1.5.0_06/bin/../jre/bin/client;D:/study tools/Java/jdk1.5.0_06/bin/../jre/bin;D:\study tools\Borland\Delphi7\Bin;D:\study tools\Borland\Delphi7\Projects\Bpl\;D:\study tools\Java\jdk1.5.0_06\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;D:\study tools\MySQL\MySQL Server 5.0\bin;C:\Program Files\Microsoft SQL Server\80\Tools\BINN

在網上查找答案,有的說将Tomcat的版本換成6.0.14就可以了;還有的說在建立Dynamic Web Project時把"Dynamic Web Module"選項後面的版本号由2.5改成2.4也行。不過這些回答好像都不能真正地解決問題。

出現SetPropertiesRule警告的原因是因為Tomcat在server.xml的Context節點中不支援source屬性:<Context docBase="…" path="/…" source="org. eclipse.jst.j2ee.server:…"/>

解決方法是在Servers視圖裡輕按兩下建立的server,然後在其server的配置界面中選中"Publish module contexts to separate XML files"選項。

不過"Publish module contexts to separate XML files"究竟是什麼意思:就是将contexts 部分放到一個單獨的檔案中。

轉述如下:

這幾天一直在看 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

tomcat對于context.xml的配置報錯問題

="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/my oracle" 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>