2015-05-29 29 views
1

对我有下面的类:ResourceNotFoundException现有路径

public class EmailService { 

    static { 
     Velocity.setProperty("resource.loader", "class"); 
     Velocity.setProperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); 
     Velocity.init(); 
    } 
    public void sendTerminalModerationStatusChangedEmail(Terminal terminal, String to) { 
     ... 
     Template subjectTemplate = null; 
     try { 
      subjectTemplate = Velocity.getTemplate(existedPath, "UTF-8"); 
     } catch (URISyntaxException e) { 
      e.printStackTrace(); 
     } 
     ... 
    } 
} 

在调试我看到存在的路径确实存在。但我得到了以下错误:

Unable to find resource 'C:/Program Files (x86)/apache/apache-tomcat-7.0.52/webapps/ROOT/WEB-INF/classes/velocityTemplates/terminalModerationStatusChanged.vm' 

但文件C:/Program Files (x86)/apache/apache-tomcat-7.0.52/webapps/ROOT/WEB-INF/classes/velocityTemplates/terminalModerationStatusChanged.vm真的存在于我的mashine如果类型路径复制到地址线,我可以找到它。

+0

为什么你使用完整路径,而不是像'velocityTemplates/terminalModerationStatusChanged.vm'一样从类路径引用加载它? – K139

+0

@ K139你是对的 – gstackoverflow

+0

好的,加入它作为答案then.Thanks! – K139

回答

1

而不是使用完整的绝对路径,从类路径加载它,因为它已经在类文件夹。

subjectTemplate = 
    Velocity.getTemplate("velocityTemplates/terminalModerationStatusChanged.vm", "UTF-8");