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 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