Мой ноутбук только что был обновлен до 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.
Что здесь происходит не так?