Невозможно загрузить файлы байт-кода с помощью библиотеки Netflix Nicobar - PullRequest
0 голосов
/ 03 июня 2019

Netflix Nicobar поставляется с Groovy-компилятором и простым загрузчиком классов. В примере, представленном на Github, показано, как загрузить скрипты Groovy во время выполнения. В моем проекте у нас есть требование загружать файлы jar из разных подразделений во время выполнения, не создавая один жирный jar. Никобар, казалось, идеально подходил для моего требования. Но я не могу заставить Nicobar работать для загрузки файлов байт-кода.

Может кто-нибудь предложить, пожалуйста, как я могу это сделать.

я использую класс ниже для плагина байт-кода

public static final String BYTECODE_PLUGIN_CLASS = "com.netflix.nicobar.core.plugin.BytecodeLoadingPlugin";

ScriptModuleLoader moduleLoader1 = new ScriptModuleLoader.Builder()
            .addPluginSpec(new ScriptCompilerPluginSpec.Builder("bytecode")
            .addRuntimeResource(ExampleResourceLocator.getbyteCodePluginLocation()).build())


            .addListener(new BaseScriptModuleListener() {                // add an example listener for module updates
                public void moduleUpdated(ScriptModule newScriptModule, ScriptModule oldScriptModule) {
                    System.out.printf("Received module update event. newModule: %s,  oldModule: %s%n", newScriptModule, oldScriptModule);
                }
            })
            .build();

269 [ArchiveRepositoryPoller-PollerThread] ОШИБКА com.netflix.nicobar.core.persistence.ArchiveRepositoryPoller - Исключительная ситуация при попытке извлечь архивы для ID модуля: [HelloWorld] java.lang.NullPointerException в java.util.AbstractCollection.containsAll (AbstractCollection.java:317) в java.util.Collections $ UnmodifiableCollection.containsAll (Collections.java:1062) в com.netflix.nicobar.core.module.GraphUtils.swapVertices (GraphUtils.java:54) в com.netflix.nicobar.core.module.ScriptModuleLoader.updateScriptArchives (ScriptModuleLoader.java:228) в com.netflix.nicobar.core.persistence.ArchiveRepositoryPoller.pollRepository (ArchiveRepositoryPoller.java:200) в com.netflix.nicobar.core.persistence.ArchiveRepositoryPoller $ 2.run (ArchiveRepositoryPoller.java:133) в java.util.concurrent.Executors $ RunnableAdapter.call (Executors.java:511) в java.util.concurrent.FutureTask.runAndReset (FutureTask.java:308) в java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.access $ 301 (ScheduledThreadPoolExecutor.java:180) в java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:294) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624) at java.lang.Thread.run (Thread.java:748)

...