Esta es una mini receta para configurar un datasource visible a todos los contextos. Las instrucciones expuestas fueron probadas en Tomcat9 y $CATALINA_HOME corresponde al path donde está instalado tomcat.
-
Debemos editar el archivo
$CATALINA_HOME/conf/server.xmly agregar el datasource como recurso global:<GlobalNamingResources> ... <Resource name="jdbc/unNombreRemote" global="jdbc/unNombreRemote" auth="Container" type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver" url="jdbc:oracle:thin:@localhost:1521:xe" username="test" password="test" maxTotal="10" maxIdle="5"/> ... </GlobalNamingResources> -
Luego debemos enlazar el recurso. Esto se puede hacer de dos formas:
-
Automáticamente para todos los contextos, editando el archivo
$CATALINA_HOME/conf/context.xmly agregar dentro de<Context> </Context><ResourceLink name="jdbc/miDatasource" global="jdbc/unNombreRemote" type="javax.sql.DataSource"/> -
Declarando explícitamente el recurso en cada contexto de aplicación, creando/editando
META-INF/context.xmlen nuestro proyecto para que quede así:<Context> ... <ResourceLink name="jdbc/miDatasource" global="jdbc/unNombreRemote" type="javax.sql.DataSource"/> ... </Context>
-
Ahora ya podremos referenciar el datasource, por ejemplo dentro de la configuración de una aplicación spring:
spring.datasource.jndi-name=java:/comp/env/jdbc/miDatasource