tomcat 7忽略了我的context.xml

时间:2013-01-24 22:29:32

标签: tomcat tomcat7 server.xml context.xml

我希望这是一个愚蠢的事情。但是我一直盯着它看太久了。

我正在Linux上升级到Tomcat 7(从6开始),它忽略了我的context.xml文件。如果我在server.xml中包含Context(数据源),它可以正常工作。但我想最终从server.xml中获取这些东西。

我在Windows / Eclipse中使用分离的上下文运行Tomcat 7,它运行正常。

我尝试过Host copyXML参数。即使它确实复制了context.xml,它也不会使用它...除非我将它包含在server.xml中的Host中。当它失败时,它抱怨它无法获得我的MySQL连接:“无法获得连接,DataSource无效”

我确定配置的其余部分没问题,因为当我将它粘贴到server.xml时它可以工作...

有人可以指出我错过了什么吗?不应该这么困难。谢谢!

顺便说一句:在CentOS 5.9(64)上,它是简单的Tomcat7(不是rpm),JDK-7u11。

位置:

/var/webapps/shop1
    query.jsp
/var/webapps/shop1/META-INF
    context.xml

在server.xml中:

<Host name="dev3.domain.net" appBase="/var/webapps" 
    unpackWARs="true" autoDeploy="true">

    <Context docBase="shop1" path="" reloadable="true" />
</Host>

context.xml中:

<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <Resource name="jdbc/shop1db" auth="Container"
            type="javax.sql.DataSource"
            factory="org.apache.commons.dbcp.BasicDataSourceFactory"
            maxActive="50" maxIdle="25" maxWait="10000"
            username="user" password="pass"
            driverClassName="com.mysql.jdbc.Driver"
            validationQuery="SELECT 1"
            url="jdbc:mysql://localhost/shop1"
            logAbandoned="true" removeAbandoned="true" removeAbandonedTimeout="60"
    />
</Context>
web.xml中的

<context-param>
    <param-name>javax.servlet.jsp.jstl.sql.dataSource</param-name>
    <param-value>jdbc/shop1db</param-value>
</context-param>

2 个答案:

答案 0 :(得分:0)

这些改变是否有效?...

在您的web.xml代码段中

1:,仅使用javax.servlet.jsp.jstl.sql.dataSource替换javax.sql.dataSource

2:完全替换您的web.xml代码段(即整个context-param部分):

<resource-ref>
    <description>DB Connection</description>
    <res-ref-name>jdbc/shop1db</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>

3:确保您的Web应用程序可以使用MySQL连接器(jar?),例如。在WEB-INF/lib

希望有所帮助......

...如果这个问题现在已经有几个月了,如果你在此期间自己解决了,请在这里评论一下对你有用的修复! :-P

答案 1 :(得分:-1)

我把context.xml放在application \ META-INF \文件夹中,比如/Context&gt ;web.xml就像MySQL数据源示例     jdbc / DBConskundali javax.sql.DataSource容器但是对我不起作用我还把mysql connect.jar的版本5.1.28放在tomcat lib文件夹中