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

tomcat对于context.xml的配置报错问题

2013-12-02 22:13 323 查看
警告: [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

="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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: