Hmm. Parece que la ruta más fácil para obtener lo que quiero en el lado Java de la aplicación es usar Servlet.getServletConfig().
getInitParameter(parameterName)
, por ejemplo. getInitParameter ("myApp.connectionString");
Pero no sé dónde configurar esto. El Tomcat docs habla de varias permutaciones de context.xml, pero quiero asegurarme de que este parámetro solo afecte a mi servlet y no a otros. Tampoco quiero ubicarlo dentro de mi archivo .war para poder mantener este parámetro independiente de las aplicaciones (por ejemplo, si instalo una actualización).
Actualización: lo he descubierto, parámetros clave/valor accesibles por ServletContext.getInitParameter() ir aquí (o puede ir aquí) en $ {} CATALINA_HOME /conf/server.xml:
<Server port=... >
...
<Service name="Catalina" ...>
<Engine name="Catalina" ...>
...
<Host name="localhost" ...>
<Context path="/myWarFile">
<Parameter name="foo" value="123" />
<Parameter name="bar" value="456" />
...
</Context>
</Host>
</Engine>
</Service>
</Server>
Esto establece dos parámetros, "foo" = "123", "bar" = "456" para el servlet myWarFile.war (o más exactamente con la ruta URL /myWarFile
) y puedo obtenerlos en Java con Servlet.getServletConfig().getInitParameter("foo")
o Servlet.getServletConfig().getInitParameter("bar")
.
también miré a la entrada server.xml de JIRA (y what they tell you to set it to for MySQL), utilizan un Resource
en lugar de un Parameter
, no muy seguro de las sutilezas de esto, pero parece que podría ser el método más apropiado.
<Server port=... >
<Service name="Catalina" ...>
<Engine name="Catalina" ...>
<Host name="localhost" ...>
<Context path="/jira" docBase="${catalina.home}/atlassian-jira"
reloadable="false">
<Resource name="jdbc/JiraDS" auth="Container" type="javax.sql.DataSource"
username="jirauser"
password="..."
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/jiradb1?autoReconnect=true&useUnicode=true&characterEncoding=UTF8"
maxActive="20"
validationQuery="select 1"
/>
</Context>
</Host>
</Engine>
</Service>
</Server>
gracias ...probablemente tengas razón a largo plazo, pero esta es probablemente la única aplicación Tomcat en la que trabajaré durante mucho tiempo + No tengo demasiado tiempo libre para descubrir cómo ajustar mi aplicación. Los documentos de apache no son muy claros. –
esto tiene un poco más de sentido ahora después de pasar el tiempo tirando de mi cabello (por desgracia ...) y después de mirar el servidor JIRA.xml. Sin embargo, ¿cómo puedo acceder al DataSource desde mi aplicación Java? La página de ejemplo ofrece un ejemplo de JSP pero no de código Java. –
Incluyen un par de ejemplos más abajo (por ejemplo, en la sección PostgreSQL, paso 4). –