tomcat 7忽略了我的context.xml

Pre*_*ete 7 tomcat context.xml server.xml tomcat7

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

我在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
Run Code Online (Sandbox Code Playgroud)

在server.xml中:

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

    <Context docBase="shop1" path="" reloadable="true" />
</Host>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

在web.xml中:

<context-param>
    <param-name>javax.servlet.jsp.jstl.sql.dataSource</param-name>
    <param-value>jdbc/shop1db</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)

小智 0

这些更改是否有效?\xe2\x80\xa6

\n\n

1:在您的web.xml代码片段中,替换javax.servlet.jsp.jstl.sql.dataSourcejavax.sql.dataSource

\n\n

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

\n\n
<resource-ref>\n    <description>DB Connection</description>\n    <res-ref-name>jdbc/shop1db</res-ref-name>\n    <res-type>javax.sql.DataSource</res-type>\n    <res-auth>Container</res-auth>\n</resource-ref>\n
Run Code Online (Sandbox Code Playgroud)\n\n

3:确保您确实有一个可用于您的 Web 应用程序\xe2\x80\x94e.g 的 MySQL 连接器(jar?)。在WEB-INF/lib

\n\n

希望那里的东西可以帮助\xe2\x80\xa6

\n\n

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

\n