wo/wie kann man die setup-Konfiguration-Ressourcen für Tomcat .war-Dateien
Ich habe einen source-tree für einen .war-Datei, die ich modifizieren müssen, so dass ich fügen Sie einige Anwendungs-spezifische Konfigurations-info (in diesem Falle eine jdbc-Verbindung string, aber ich kann auch andere Eigenschaften-wie Ressourcen). Was sind die best practices für configuration info und wie Zugriff auf diese innerhalb des Servlet?
Ich vermute, diese Tomcat configuration reference hat etwas damit zu tun, aber meine Augen glasig, wenn ich versuche, es zu Lesen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für den speziellen Fall einer JDBC-Verbindung string, ich würde empfehlen, mit einem Tomcat-verwalteten Verbindungs-pool statt. Lesen Sie mehr über das tun dies hier:
http://tomcat.apache.org/tomcat-5.5-doc/jndi-datasource-examples-howto.html
Es ist mehr Arbeit, aber ich denke auf lange Sicht wird es Ihnen besser dienen.
Für web app-Konfiguration Sie können die Konfiguration auf den Klassenpfad irgendwo. Dann können Sie sich aus Ihrer Anwendung mit getResourceAsStream oder wenn Sie es bevorzugen Frühling:
Gibt es eine Reihe von Orte, die Sie setzen können Sie die Eigenschaften der classpath Tomcat. damit sieht es so aus:
Beispielsweise, wenn Sie meine-config.Eigenschaften, die sich beide in einem .jar-Datei und in WEB-INF/classes der in WEB-INF/classes verwendet werden. Könnten Sie nutzen diesen Mechanismus, um Standard zu testen, config und überschreiben prod config auf dem prod-Server.
Hmm. Es sieht aus wie der einfachste Weg, um zu bekommen, was ich will, auf der Java-Seite der Anwendung ist die Verwendung
Servlet.getServletConfig().
getInitParameter(parameterName)
z.B. getInitParameter("myApp.connectionString");Aber ich weiß nicht wo dies eingestellt. Die Tomcat-docs - talk über die verschiedenen Permutationen von context.xml aber ich möchte sicherstellen, dass dieser parameter wirkt sich nur auf mein servlet und keine anderen. Ich will auch nicht zu finden in meiner .war-Datei, so dass ich halten kann dieses Parameters, der unabhängig von den Anwendungen (zum Beispiel, wenn ich ein upgrade installieren).
Update: ich es herausgefunden, Schlüssel/Wert-Parameter zugänglich ServletContext.getInitParameter() hier gehen (oder gehen können hier) in ${CATALINA_HOME}/conf/server.xml:
Diese setzt zwei Parameter, "foo" = "123", "bar" = "456" für das servlet myWarFile.Krieg (oder, genauer gesagt, mit den URL-Pfad
/myWarFile
) und ich kann auf Sie in Java mitServlet.getServletConfig().getInitParameter("foo")
oderServlet.getServletConfig().getInitParameter("bar")
.Ich schaute auch bei JIRA ' s server.xml Eintrag (und was Sie sagen, um die Einstellung für MySQL), verwenden Sie eine
Resource
eher als eineParameter
, ganz sicher nicht die Feinheiten, aber es scheint, wie es könnte mehr entsprechende Methode.können Sie den Pfad zu Ihrem properties-Dateien in Ihrem
CATALINA_HOME/conf/catalina.properties
im "gemeinsamen" classloader gemeinsam.loader.