tomcat 7 ignoriert meine context.xml

Ich hoffe das ist etwas blöd. Aber ich starrte Sie viel zu lange.

Ich bin ein Upgrade auf Tomcat 7 (6) auf Linux und es ignoriert meine context.xml Datei. Wenn ich den Kontext (datasource) in der server.xml es arbeiten fein. Aber ich möchte endlich die Sachen aus der server.xml.

Habe ich Tomcat 7 läuft in Windows/Eclipse mit dem Kontext getrennt, und es funktioniert gut.

Habe ich versucht die Host copyXML parameter. Auch wenn es nicht die Kopie context.xml es nicht es zu benutzen... es sei denn ich schließe es in der Host in der server.xml. Wenn es scheitert, beschwert es sich, dass es nicht meine MySQL-verbindungen: "keine Verbindung, DataSource ungültig"

Ich bin mir sicher, dass der rest der Konfiguration ist in Ordnung, da es funktioniert wenn ich es einfügen in die server.xml...

Könnte mir bitte jemand erklären, was ich bin fehlt? Es ist eigentlich nicht so schwer. Danke!

BTW: Es ist deutlich Tomcat7 (nicht als rpm), JDK-7u11, auf CentOS 5.9 (64).

Standorte:

/var/webapps/shop1
    query.jsp
/var/webapps/shop1/META-INF
    context.xml

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

innerhalb web.xml:

<context-param>
    <param-name>javax.servlet.jsp.jstl.sql.dataSource</param-name>
    <param-value>jdbc/shop1db</param-value>
</context-param>
Wenn Sie MySQL verwenden, dann vielleicht das Beispiel von der offiziellen Tomcat-documentaion wird Ihnen helfen: MySQL-DBCP Beispiel. Übrigens wird der Standard-port für MySQL ist 3306, d.h. es sollte url="jdbc:mysql://localhost:3306/shop1" natürlich, wenn Sie diesen nicht geändert haben
Ja... ich hatte den port vor. Gleiche Ergebnis, obwohl. Ich denke es muss eine Einstellung im Zusammenhang zu Lesen context.xml Datei. Wenn ich copyXML zu wahren, dann tut es kopieren und benennen Sie korrekt. Er weiß also, es ist da. Es will einfach nichts mit. Wieder, wenn ich den context.xml text in der Host in der server.xml, dann funktioniert es Prima. Aber diese Praxis ist nicht ideal...
Ich kann immer wieder zurück gehen. Aber dies war meine Chance, es richtig zu machen...
Eigentlich laut der offiziellen Tomcat-docs related to Kontext-container (Zitat): "Es ist NICHT zu empfehlen, <Kontext> - Elemente direkt in die server.xml Datei. Dies ist, weil es macht änderung der Context-Konfiguration mehr invasive, da die wichtigsten conf/server.xml Datei kann nicht geladen werden, ohne Neustart von Tomcat." Sie sind also zu Recht über die nicht wollen, gehören im Kontext server.xml
Auch bist du sicher brauchen Sie docBase und path Attribute in Context - element (nur für den Fall, hier ist die Beschreibung: Context-Attribute)? Vielleicht versuchen Sie, ohne Ihnen zu helfen. Ich in der Regel nur eigene context.xml ohne docBase oder path Attribute unter META-INF in der form wie von mir beschrieben eine meiner Fragen hier: stackoverflow.com/a/13631242/814702. Funktioniert wie ein Charme. Natürlich, haben SIE vielleicht einen Grund warum diese Attribute. Ich habe einfach nie benötigt.

InformationsquelleAutor PrecisionPete | 2013-01-24

Schreibe einen Kommentar