No creo que haya una buena forma de comprobarlo. Y no estoy seguro de que quieras hacer eso. Lo que debe hacer es familiarizarse con la arquitectura de carga de clases de su servidor de aplicaciones, y comprender cómo funciona.
Una explicación simplificada de cómo funciona es que un EJB o una aplicación web primero buscará una clase o un recurso en bibliotecas declaradas en su propio módulo (ejb-jar o war). si la clase no se encuentra allí, el cargador de clases reenvía la solicitud al cargador de clases padre que es una dependencia declarada (generalmente un ejb) o el cargador de clases de la aplicación que es responsable de cargar las bibliotecas y los recursos declarados en el paquete ear . Si aún no se encuentra la clase o el recurso, la solicitud se reenvía al servidor de la aplicación, que buscará en su propia ruta de clases.
Dicho esto, usted debe recordar que un módulo Java EE (web-app, EJB) siempre va a cargar las clases de un frasco que está en el ámbito más cercano. Por ejemplo, si empaqueta log4j v1 en el archivo war, log4j v2 en el nivel ear y coloca log4j v3 en la ruta de clase de su servidor de aplicaciones, el módulo usará el jar en su propio módulo. quítalo y usará el que está al nivel del oído. elimínalo y usará el que está en el classpath del servidor de aplicaciones. Las cosas se vuelven más complicadas cuando tienes dependencias complejas entre módulos.
Lo mejor es poner las bibliotecas globales de la aplicación a nivel del oído.
¡Parece algo que podría usar Tom! Voy a profundizar en eso mañana. Gracias de antemano ... Johan –