我希望这是一件愚蠢的事情。但我已经盯着它太久了。
我在 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>