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.xml
y 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.xml
y 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.xml
en 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