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>
url="jdbc:mysql://localhost:3306/shop1"
natürlich, wenn Sie diesen nicht geändert habenJa... 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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese änderungen arbeiten?...
1: in Ihrem
web.xml
snippet ersetzenjavax.servlet.jsp.jstl.sql.dataSource
mit nurjavax.sql.dataSource
2: ersetzen Sie Ihre
web.xml
snippet komplett (also die gesamtecontext-param
Abschnitt) mit:3: stellen Sie sicher, dass Sie wirklich einen MySQL-connector (Glas?) erhältlich auf Ihrer web-app—z.B. in
WEB-INF/lib
Hoffnung, dort etwas helfen könnte...
... und angesichts dieser Frage ist ein paar Monate alt jetzt, und, sollten Sie beschlossen haben es selbst in der Zwischenzeit, bitte Kommentar mit der Korrektur, die für Sie gearbeitet! 😛
InformationsquelleAutor Xander Plooy
legte ich context.xml in der Anwendung\META-INF\ Ordner wie /Kontext>web.xml wie MySQL Datasource Beispiel
jdbc/DBConskundali javax.sql.DataSource-Container, aber nicht für mich arbeiten, ich habe auch mysql connect.jar version 5.1.28 im tomcat lib Ordner
ich legte mysql-connector-java-5.1.28-bin.jar in WEB-INF/lib Ordner, aber es hat nicht geklappt und ich habe auch diese jar Datei in das tomcat lib Ordner ..ich denke, es war nicht in der Lage, Blick bis JNDI-datasource bcz datasouce erste Zeit bekam ich die SQL-EXCEPTION
InformationsquelleAutor Dillip