Шаблон скорости не может быть найден в Windows 10 - PullRequest
0 голосов
/ 08 июля 2019

Мой ноутбук только что был обновлен до Windows 10 с Windows 7, и кусок кода перестал работать. Большое приложение, использующее шаблоны скорости, которые раньше нормально работали в Windows 7, теперь не может найти файлы шаблонов.

Шаблоны хранятся по пути WebContent \ WEB-INF \ config \ templates в каталоге проекта. Класс EngineInitializer используется для их загрузки. Код для класса выглядит следующим образом:

private static Logger logger = Logger.getLogger(EngineInitializer.class);

private static String RELATIVE_PATH_FOR_TEMPLATES = "/WEB-INF/config/templates";
    if(logger.isDebugEnabled())
        logger.debug("About to initialize the Velocity Engine");
    Properties p = new Properties();
    String absolutePath=new File(Thread.currentThread().getContextClassLoader().getResource("").getFile()).getParentFile().getParentFile().getPath();//this goes to webapps directory
    //configure the velocity logger to use the default logging
    p.put(RuntimeConstants.RUNTIME_LOG_LOGSYSTEM_CLASS,"org.apache.velocity.runtime.log.Log4JLogChute");
    p.put("runtime.log.logsystem.log4j.logger", "defaultLog");
    p.put("file.resource.loader.path", absolutePath + RELATIVE_PATH_FOR_TEMPLATES);
    p.put("file.resource.loader.cache", "true");
    p.put("file.resource.loader.modificationCheckInterval", "-1");
    p.put("parser.pool.size", "30");

    Velocity.init(p);
    if(logger.isInfoEnabled())
        logger.info("The velocity engine is now initialized..");

Следующие строки в файле applicationBeans.xml инициализируют движок:

<!-- initialize the velocity engine before the listener thread starts -->
<bean id="engineInitializer" class="com.file.myprogram.template.processor.EngineInitializer"
    init-method="initializeEngine" />

В начале журнал печатается. Внутри отдельных классов шаблоны вызываются с помощью метода Velocity.getTemplate (). Это теперь возвращает org.apache.velocity.exception.ResourceNotFoundException: Невозможно найти ресурс 'MediationZone.vm' ошибка. Ничто, кроме основной ОС, не было изменено. Этот код отлично работает на сервере RHEL как веб-приложение. Код был загружен из Subversion и запущен на ноутбуке с Windows 10 с использованием eclipse v4.9.

Что здесь происходит не так?

...