¿Puede alguien ayudar a explicar por qué JNDI debería ser una forma preferida de exponer servicios como una base de datos/jms?¿Por qué usar JNDI para orígenes de datos?
Las publicaciones con las que me encuentro hablan de la ventaja de no tener que cargar un administrador de controlador específico, beneficiándose de la agrupación de conexiones, etc. pero eso se logra fácilmente especificando el administrador de controladores en un archivo de propiedades y utilizando la reflexión.
La agrupación de conexiones también se puede lograr mediante el cableado en la implementación correcta en un bean de aplicación a través de un muelle o de otro modo.
¿Por qué el uso de JNDI sería mejor?
Entonces, ¿cómo es eso diferente de tener un archivo de propiedades en cada uno de esos entornos? Después de todo, un administrador está administrando las conexiones de la base de datos en cada servidor. – Kailash
Los archivos de propiedades generalmente están empaquetados dentro del WAR, por lo que no puede modificarlos. Tendría que distinguir entre archivos por entorno y pasar una variable para identificar dónde se encuentra. Si realmente está convencido de hacerlo a su manera, hágalo de todos modos. No estoy tratando de vender nada; no parece que realmente quiera reconocer ninguna diferencia. A algunas personas les gusta que sus ideas sean validadas; tal vez eres uno de esos. – duffymo
Solo quiero entender realmente la diferencia, eso es todo :) Si entiendo bien, al usar JNDI, permite que el contenedor administre esas propiedades, por lo que no tiene que administrarlas en su propio archivo. También veo algunas publicaciones que hablan sobre cómo configurar las configuraciones de jndi a través de un archivo de propiedades - http://activemq.apache.org/jndi-support.html - entonces, ¿esto está derrotando el propósito de alguna manera? – Kailash