The javadoc indicates that the Class's getResourceAsStream() method converts "." to "/" - whereas the ClassLoader doesn't.
Niall ----- Original Message ----- From: "Simon Kitching" <[EMAIL PROTECTED]> To: <[email protected]> Sent: Thursday, March 02, 2006 9:43 AM Subject: [general] ClassLoader question > Hi y'all > > I'm puzzled by the behaviour of the Class.getResourceAsStream vs > ClassLoader.getResourceAsStream methods. > > I'm trying to implement the recommended "java service provider" pattern, > which involves looking for a file with the name of an API class > in /META-INF/services, but I can't seem to get the file when using a > specific ClassLoader. > > Can anyone suggest why the following code might print this? > Found via class > Not found via classloader > > ==== code ==== > > InputStream s1 = LogTest.class.getResourceAsStream( > "/META-INF/services/org.apache.commons.logging.LogFactory"); > if (s1 == null) { > System.out.println("Not found via class"); > } else { > System.out.println("Found via class"); > s1.close(); > } > > InputStream s2 = LogTest.class.getClassLoader().getResourceAsStream( > "/META-INF/services/org.apache.commons.logging.LogFactory"); > if (s2 == null) { > System.out.println("Not found via classloader"); > } else { > System.out.println("Found via classloader"); > s2.close(); > } > > > I've tried sun java 1.4.2 and 1.5.0_04 and got the same results. > > Thanks, > > Simon > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
