tomcat 7 忽略我的 context.xml

问题描述 投票:0回答:1

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

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

我在 Windows/Eclipse 中运行 Tomcat 7,并且上下文分离,并且工作正常。

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

我确信配置的其余部分很好,因为当我将其粘贴到 server.xml 中时它可以工作...

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

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

地点:

/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>
tomcat tomcat7 server.xml context.xml
1个回答
0
投票

这些改变有效吗?…

1: 在您的

web.xml
代码段中,将
javax.servlet.jsp.jstl.sql.dataSource
替换为
javax.sql.dataSource

2:

web.xml
代码段完全替换为:

context-param

3:确保您确实有一个可供您的 Web 应用程序使用的 MySQL 连接器(jar?),例如在
<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>


希望那里的东西可能有所帮助......

…考虑到这个问题已经有几个月了,如果您同时已经自己解决了这个问题,请在此处发表评论,并提供对您有用的修复! :-P

© www.soinside.com 2019 - 2024. All rights reserved.