7

これがばかげていることを願っています。しかし、私はそれをずっとずっと見つめてきました。

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>
4

1 に答える 1

0

これらの変更は機能しますか?…</p>

1:web.xmlスニペットで、javax.servlet.jsp.jstl.sql.dataSourcejustに置き換えます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: Web アプリで使用できる MySQL コネクタ (jar?) が本当にあることを確認します。WEB-INF/lib

何かお役に立てば幸いです…</p>

…そして、この質問が数か月前のものであることを考えると、それまでに自分で解決した場合は、ここにコメントして、あなたのために働いた修正をしてください! :-P

于 2013-04-19T00:58:38.160 に答える