Teniendo en cuenta este código:.Diferencia entre ClassLoader.getSystemResourceAsStream y getClass() getResourceAsStream()
/* 1 */ InputStream in1 = ClassLoader.getSystemResourceAsStream("foobar.txt");
/* 2 */ InputStream in2 = this.getClass().getResourceAsStream("/foobar.txt");
hacer ambas devuelven el mismo recurso (creo que el "sí" la respuesta)?
¿Ambos acceden al "mismo" classpath? ¿Por qué el nombre del método en # 1 "obtiene Sistema ResourceAsStream", pero para el # 2 es solo "getResourceAsStream"?
Gracias
¿Entonces usted dice que hay múltiples classpaths en las aplicaciones web? – Michael
@Michael - Más o menos. Normalmente, cada aplicación web tiene su propio cargador de clases que es responsable de los contenidos de WAR, EAR, etc. Estos cargadores de clases tienen un elemento primario común y, por lo tanto, las clases en los directorios lib comunes se comparten entre las diversas aplicaciones web. Pero estas jerarquías pueden ser de varios cargadores de profundidad. El cargador de clases del sistema estará en la parte superior, pero quizás haya un número intermedio. – sblundy
Diferentes webapps probablemente tengan diferentes cargadores de clases. Por ejemplo, en Glassfish, tienen una jerarquía especificada aquí: http://download.oracle.com/docs/cd/E19798-01/821-1752/6nmndgmhr/index.html#fvxzq. – g051051