Почему Repast Simphony не может найти выход модели в пакетном режиме? - PullRequest
2 голосов
/ 18 февраля 2020

Я пытаюсь провести пакетный прогон модели через Симфонию GUI. У меня есть текстовая раковина с относительным путем "./Test_Data_FileSink", созданная в моем дереве сценариев. Этот файл создается и сохраняется за один проход через GUI. Однако при выполнении пакетного запуска файл не создается в экземпляре localhost. Когда я перехожу к экземпляру, я вижу debug.log, FAILURE_null, instance.log и param_input.txt, но нет файла Test_Data_FileSink. Пакетный процесс пытается скомпилировать данные между экземплярами и возвращает пустые batch_param_map.txt и Test_Data_FileSink.txt в назначенном месте вывода.

В окне конфигурации пакетного запуска отображается предупреждение:

'WARN [SwingWorker-pool-2-thread-1] 12: 15: 28,906 repast.simphony.batch.s sh .OutputFinder - не найден вывод модели, соответствующий глобусу: {** \,} Test_Data_FileSink_ModelOutput *. TXT в C: \ Users \ user \ AppData \ Local \ Temp \ simphony_model_1582046063159 \ instance_1 '

В журнале консоли пакетного запуска есть дополнительная ошибка, когда модель может искать пользовательский интерфейс ,

repast.simphony.batch.InstanceRunner - ошибка при запуске модели java .lang.NoClassDefFoundError: repast / simphony / ui / RSApplication

GUI пользовательский интерфейс позволяет вводить параметры, но я не вижу, от чего зависит модель, если параметры уже установлены. Я попытался вставить некоторые условные операторы при настройке пользовательского интерфейса

if (!RunEnvironment.getInstance().isBatch()) {
 // do your GUI specific elements here
}

Это нарушает инициализацию Simphony, если я не позволяю отображать пользовательский интерфейс и, похоже, не оказывает большого влияния на локации Я нашел это на работу.

Что еще мне следует попробовать?

1 Ответ

3 голосов
/ 20 февраля 2020

Класс SpecialEffects в модели GeoZombies ссылается на класс RSApplication, который недоступен в пакетном пути к классам, и в любом случае он не нужен в пакете, поскольку все, что он делает, это предоставляет некоторые визуальные и звуковые эффекты, его можно удалить из модели .

  1. Удалить класс SpecialEffects
  2. В ContextCreator удалите вызов stati c к SpecialEffects.setUIEffects ();
  3. В агенте Human удалите вызов SpecialEffects.getInstance (). PlayEnragedZombies ();
  4. В агенте Zomb ie удалите вызовы SpecialEffects.getInstance () ...
...