Ahoj,

ja bezne vo web aplikaciach pouzivam

URL url = MojaTrieda.getResource("…");

a funguje to bez problemov. Vo vasom pripade by to zrejme malo byt URL url = 
MojaTrieda.getResource("/src/main/resources/libresource.properties"); pripadne 
iba "/libresource.properties".

Preco sa snazite pouzit getSystemResource a tym padom "System classloader"? 
Podla http://tomcat.apache.org/tomcat-7.0-doc/class-loader-howto.html System 
classloader nemoze vidiet resources z webovych aplikacii. Pouzite bud 
getResource z nejakej vasej classy (ta je urcite nacitana webovym 
classloaderom), alebo pouzite classloader zo ServletContext.getClassLoader().

-Peter

On 22.8.2012, at 17:15, Dusan Zatkovsky <[email protected]> wrote:

> Ahoj.
> 
> Zapasim s nacitavanim resources z classpath webovej aplikacie v tomcat-e a 
> nejak neviem prist veci na klb.
> 
> Mam klasicku ( mavenom buildenu ) aplikaciu zlozenu z:
>  - lib
>  - command line client
>  - webapp
> 
> lib.jar obsahuje:
>  ./src/main/resources/libresource.properties
> 
> K tomuto suboru pristupujem v cli a webapp pomocou:
> 
>            URL url = ClassLoader.getSystemResource("libresource.properties");
> 
>            Properties p = new Properties();
> p.load(ClassLoader.getSystemResourceAsStream("libresource.properties"));
> 
> V cli aplikacii to funguje, vo webapp nie ( getSystemResource vrati null ).
> 
> Tomcat v dokumentacii classloader-u pise:
> 
>  A class loader is created for each web application that is deployed in a 
> single Tomcat instance.
>  All unpacked classes and resources in the /WEB-INF/classes directory of your 
> web application,
>  --> plus classes and resources in JAR files under the /WEB-INF/lib directory 
> <-- of your web application,
>  are made visible to this web application, but not to other ones.
> 
> Co je presne co chcem. Ale zjavne to nefunguje tak ako ocakavam.
> 
> Vygooglil som, ze riesenim je skopirovat ten property file pocas buildu 
> priamo do webapp/target/WEB-INF/classes,
> co samozrejme nechcem, pretoze to ide presne proti cielu mojho snazenia ( 
> odstranit z projektu nadbytocne rozkopirovavanie ).
> 
> V com robim chybu?
> 
> Diky
> 
> --
> Dusan

Odpovedet emailem