tomcat 7 忽略了我的 context.xml

标签 tomcat tomcat7 server.xml context.xml

我希望这是愚蠢的事情。但我已经盯着它看了太久了。

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

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

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

我确信配置的其余部分没问题,因为当我将其粘贴到 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>

上下文.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>

最佳答案

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

1: 在您的 web.xml 片段中,将 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:确保您确实有一个 MySQL 连接器(jar?)可用于您的网络应用程序——例如在 WEB-INF/lib

希望那里有什么可以帮助...

…考虑到这个问题已经有几个月了,如果您在此期间自己解决了它,请在此处评论对您有用的修复方法! :-P

关于tomcat 7 忽略了我的 context.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14512008/

相关文章:

java - 在 Apache Tomcat 8 中对图像和字体进行 Gzip 压缩

apache mod_jk.so 启动权限被拒绝

java - 当它也是默认的网络应用程序时,如何在网络应用程序的 context.xml 中设置上下文变量?

java - 为什么tomcat会永久刷新页面

Java Web 应用程序适用于 netbeans,但不适用于 "stand-alone"

java - 将 awt.Robot 与 Tomcat 服务结合使用

java.lang.NoClassDefFoundError : javax/el/ELManager

java - Tomcat maven 插件 - 无法加载类 "org.slf4j.impl.StaticLoggerBinder"

tomcat7 -/var/cache/tomcat7/temp 中的大量 +~JF****.tmp 文件