在Windows 10中找不到速度模板

时间:2019-07-08 14:45:04

标签: java velocity

我的笔记本电脑刚刚从Windows 7升级到Windows 10,并且一段代码停止工作。使用速度模板的大型应用程序以前可以在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'错误。除了底层操作系统外,没有其他更改。这段代码可以作为Web应用程序在RHEL服务器上正常运行。已经从Subversion下载了代码,并使用eclipse v4.9在Windows 10便携式计算机上运行了代码。

这是怎么回事?

0 个答案:

没有答案