これがばかげていることを願っています。しかし、私はそれをずっとずっと見つめてきました。
LinuxでTomcat7(6から)にアップグレードしていますが、context.xmlファイルが無視されます。server.xmlにコンテキスト(データソース)を含めると、正常に機能します。しかし、私はついにそのようなものをserver.xmlから取り出したいと思います。
分離されたコンテキストでWindows/EclipseでTomcat7を実行していますが、正常に動作します。
HostcopyXMLパラメーターを試しました。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>
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>