Je télécharge un fichier jar de façon dynamique via servlet et l'enregistre dans mon répertoire WEB-INF/lib. Je veux obtenir toutes les classes annotées avec mon @annotation,Chargement des classes à partir d'un fichier jar qui est téléchargé dynamiquement via un servlet
ont utilisé le code de réflexions ci-dessous sans chance .. le manifeste du pot est retranscrit mais les classes ne sont pas .. la liste des classes est 0
List<ClassLoader> classLoadersList = new LinkedList<ClassLoader>();
classLoadersList.add(ClasspathHelper.contextClassLoader());
classLoadersList.add(ClasspathHelper.staticClassLoader());
ConfigurationBuilder builder = new ConfigurationBuilder().setScanners(new SubTypesScanner(false), new ResourcesScanner(),
new TypeAnnotationsScanner());
Set<URL> set = ClasspathHelper.forClassLoader(classLoadersList.toArray(new ClassLoader[0]));
FilterBuilder filterBuilder = new FilterBuilder().include(FilterBuilder.prefix(exportPackage));
Reflections reflections = new Reflections(builder.setUrls(set).filterInputsBy(filterBuilder));
Set<Class<? extends Object>> classSet = reflections.getTypesAnnotatedWith(MyAnnotation.class);
Quels changements à la configuration aidera à obtenir les classes du pot dynamiquement téléchargé ..
J'ai créé un URLClassLoader et ajouté à la classLoadersList mais les questions reste encore. essayer de charger une classe throws ClassNotFoundException .. J'ai également séparé le pot de la bibliothèque ne stockant pas le jar téléchargé dans un dossier distinct .. pouvez-vous m'aider avec un exemple de code d'urlclassloader avec des réflexions ..? –