ClasspathResourceLoader
будет загружать ресурсы из classpath , а не просто из произвольного места в файле WAR.Это означает, что если ваши шаблоны находятся в /webapp/templates
в вашем WAR-файле (или где-либо еще), то btu этот путь отсутствует в classpath , тогда они не будут найдены.
Если это веб-приложение, то вы действительно хотите использовать Velocity Tools WebappLoader
, который использует ServletContext
для загрузки файлов из самого контекста.Это позволяет читать файлы практически из любого места в веб-приложении, даже из файлов WAR и т. Д.
Возможно, вам придется перепроверить, чтобы увидеть, какова структура вашего файла WAR - именно там, где templates/
каталог заканчивается - чтобы убедиться, что у вас правильный базовый путь.Я предполагаю, что они окажутся либо под /templates
, либо /webapp/templates
, но я подозреваю, что первое более вероятно ... каталог webapp
с большой вероятностью окажется корнем файла WAR, поэтому /templates
, вероятно, правильно.