¿Cómo sabe una aplicación que utiliza el SimpleNamingContextBuilder
de Spring como su proveedor JNDI para buscar recursos en su directorio? ¿Qué vincula la aplicación con el directorio de nombres de Spring? Por ejemplo, ¿cómo sabe el bean JndiObjectFactoryBean
en este anterior answer encontrar el recurso my-db
en el directorio Spring? ¿No requiere JndiObjectFactoryBean
un entorno de contexto con la propiedad java.naming.factory.initial
establecida en alguna implementación de la interfaz InitialContextFactory
? ¿Cuál debería ser el valor de java.naming.factory.initial
al usar SimpleNamingContextBuilder
como el proveedor JNDI?¿Cómo sabe una aplicación que utiliza SimpleNamingContextBuilder de Spring para buscar recursos en su directorio?
Respuesta
La clase de tiempo de ejecución de Java NamingManager
sirve como enlace entre una aplicación Java y su directorio de nombres. Cuando se SimpleNamingContextBuilder
activates, se instala en el miembro estático InitialContextFactoryBuilder
en NamingManager
. Cuando la aplicación crea un InitialContext
para recuperar el contexto JNDI, la clase InitialContext
delega a NamingManager, que a su vez pregunta al IntialContextFactoryBuilder
(en este caso, SimpleNamingContextBuilder
) para crear un IntialContextFactory
, que finalmente crea el InitialContext
.
JndiObjectFactoryBean
no necesita un entorno contexto explícito porque SimpleNamingContextBuilder
proporciona la InitialContextFactory
a la NamingManager
y JndiObjectFactoryBean
utiliza el NamingManager
para recuperar sus recursos. Por lo tanto, en la respuesta anterior, JndiObjectFactoryBean
"sabe" buscar en el directorio de nombres de Spring el recurso my-db
porque SimpleNamingContextBuilder
se ha establecido como el proveedor JNDI en el NamingManager
.
En pocas palabras, si quiere simular el árbol JNDI con prueba de falsa InitialContext en pruebas unitarias, se puede utilizar SimpleNamingContextBuilder. Instalé SimpleNamingContextBuildeit en un método de prueba de inicio y creo con éxito un InitialContext en memoria. p. en una clase de prueba de primavera ..
@BeforeClass
public static void setupJndi() throws Exception {
SimpleNamingContextBuilder.emptyActivatedContextBuilder();
Context context = new InitialContext();
context.bind("java:comp/env/jms/ConnectionFactory",myJmsConnectionFactory);
}
- 1. Directorio de recursos para pruebas en una aplicación Play
- 2. Cómo abrir una aplicación que utiliza las claves de API
- 3. ¿Cómo sabe Linux Kernel dónde buscar el firmware del controlador?
- 4. Cómo probar una aplicación de ruby que utiliza mecanizar
- 5. ¿Cómo lograr que R reconozca su directorio de trabajo como su directorio de trabajo?
- 6. ¿Cuándo/cómo mi aplicación .NET utiliza su archivo App.Config?
- 7. ¿Cómo sabe eclipse el nombre de su proyecto?
- 8. ¿Cómo decirle a intelliJ IDEA que actualice mis clases y recursos en una aplicación de Grails?
- 9. Tomcat sirviendo recursos estáticos en la aplicación Spring MVC
- 10. ¿Cómo agrego SSL para una aplicación .NET que utiliza httplistener - que * no * estar ejecutándose en IIS
- 11. ¿Cómo modularizar una aplicación JSF/Facelets/Spring con OSGi?
- 12. ¿Alguien sabe lo que Google News usa para su algoritmo de agrupamiento?
- 13. Prueba Bus.Send en una aplicación que utiliza NServiceBus
- 14. ¿Cómo puedo obtener una lista de recursos de directorio de mi aplicación de Android?
- 15. Enviar una aplicación a App Store que utiliza BWToolkit
- 16. ¿Cómo proporciono Ack el directorio que quiero buscar?
- 17. Buscar un directorio en C#
- 18. Buscar directorio principal de una ruta
- 19. Buscar "directorio inicial" en Python?
- 20. ¿Cómo eliminar una aplicación que está esperando su revisión?
- 21. ¿Cómo sabe un programa Perl dónde encontrar el archivo que contiene el módulo Perl que utiliza?
- 22. Obtener una lista de recursos del directorio classpath
- 23. ¿Alguien sabe de una aplicación de traducción colaborativa de OpenSource?
- 24. ¿Cómo puedo agrupar una aplicación Spring mvc?
- 25. Buscar recursos no utilizados en una solución .NET
- 26. ¿Cómo pruebo la unidad de una acción de controlador que utiliza su controlador. Variable de usuario?
- 27. buscar en el directorio que comienza con el guión
- 28. comando Shell para buscar archivos en un patrón directorio
- 29. ¿Cómo buscar en un directorio de archivos en vim?
- 30. ¿Es posible escribir un nuevo archivo para agrupar el directorio de recursos en la aplicación iOS?
¡Buen ejemplo! Esto ilustra mi punto de que cuando activa un 'SimpleNamingContextBuilder', se instala a sí mismo como el contexto JNDI predeterminado. –