Bonjour tous le monde,
J'aurai besoin d'une aide concernant un souci que nous avons.

Nous avons un serveur tomcat qui tourne et qui ne peux pas etre arreter.
Nous avons le code Java suivant :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
InputStream resourceAsStream = this.getClass().getResourceAsStream("/file.json");
Notre souci est que le fichier, par mauvaise manipulation, ne se trouve plus dans les resources du JAR.
Nous utilisons des scripts Jython pour executer du code java en runtime (Je sais c'est tres moche et dangereux).

Pour pouvoir ecrire un script qui m'ajouterai le fichier de maniere dynamique au classpath il faudrait deja que j'arrive a ecrire ce code en Java (pour ensuite le transcrire facilement en Jython).

Apres avoir suivi quelque articles, je suis arrive au code suivant qui ne fonctionne toujours pas :
(Mon code ci dessous ne vient pas regler directement mon probleme avec le code deja mentionne, mais si ce dernier fonctionne je ferai l'adaptation requise)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
    public static void main(String[] args) throws Exception {
        File f = new File("/opt/ahah/logs/server-8.log.gz");
        URL u = f.toURL();
        URLClassLoader urlClassLoader = (URLClassLoader) ClassLoader.getSystemClassLoader();
        Class urlClass = URLClassLoader.class;
        Method method = urlClass.getDeclaredMethod("addURL", new Class[]{URL.class});
        method.setAccessible(true);
        method.invoke(urlClassLoader, new Object[]{u});
        InputStream resourceAsStream = MyCustomClass.class.getResourceAsStream("/opt/ahah/logs/server-8.log.gz");
        Assert.notNull(resourceAsStream);
    }
Je vois en effet que le fichiers a ete ajouter a la liste de mon ClassLoader :
Nom : Screenshot at May 13 18-47-40.png
Affichages : 140
Taille : 138,0 Ko


mais resourceAsStream reste toujours null a la fin.
Lorsque je verifie egalement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
MyCustomClass.class.getClassLoader()
je peux voir egalement mon fichier dans la liste tout comme sur la photo.

Auriez vous une idee pour resoudre cela ?

merci