Trouver le chemin d'une application web

Quand je travaille sur mon web app dans Eclipse, je peux rechercher toutes les classes et les fichiers JAR avec

String cp = System.getProperty("java.class.path");

mais quand je déploiement sur Tomcat ou Jetty, je ne reçois rien.

Je veux trouver tous les *.properties fichiers qui sont situés dans la webapp (soit dans le BOCAL ou, si explosé, dans les dossiers).

String cp = System.getProperty("java.class.path");
String pathSep = File.pathSeparator;
String[] jarOrDirectories = cp.split(pathSep);
for (String fileName : jarOrDirectories) {
        File file = new File(fileName);
        if (file.isFile()) {
                logger.debug("From jar "+file.getName());
                loadFromJar(file.getPath());
        } else {
                logger.debug("From folder "+file.getName());
                listFolder(file);
        }
}

De cette façon, l'exécution de l'application web dans Eclipse me donne tous les fichiers JAR et de tous les dossiers de classe, mais pas quand je le déploiement de l'application dans Tomcat.

Il suffirait, si seulement je pouvais obtenir le chemin d'accès à WEB_INF. À partir de là, c'est facile.

La java.classe.chemin d'accès à la propriété n'est probablement pas ce que vous voulez. Webapps ont classloader personnalisé hiérarchies qui affectent la visibilité. Voir tomcat.apache.org/tomcat-6.0-doc/class-loader-howto.html pour plus d'informations. pouvez-vous fournir un exemple de code qui illustre ce que vous essayez de faire?

OriginalL'auteur Zemzela | 2011-07-04