我有以下代码
在这两种情况下,temlateFile.exists() 总是返回 true。
有什么想法?
File temlateFile = new File( "D:/config/emails/MailBody.vm" );
temlateFile.exists();
VelocityEngine velocityEngine = new VelocityEngine();
velocityEngine.setProperty(RuntimeConstants.RESOURCE_LOADER, "file");
velocityEngine.setProperty("file.resource.loader.class", FileResourceLoader.class.getName());
velocityEngine.setProperty("file.resource.loader.path", temlateFile.getParentFile().getAbsolutePath());
velocityEngine.init();
template = velocityEngine.getTemplate( temlateFile.getName() );
这个方法有效是因为它加载了本地文件系统中的文件。
当我把第一行更改为:
File temlateFile = new File( "//remote/config/emails/MailBody.vm" );
它不能工作。
org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource 'MailBody.vm'
at org.apache.velocity.runtime.resource.ResourceManagerImpl.loadResource(ResourceManagerImpl.java:474)
at org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl.java:352)
at org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1533)
at org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1514)
at org.apache.velocity.app.VelocityEngine.getTemplate(VelocityEngine.java:373)
at com.actuate.iserver.mail.VelocityContent.<init>(VelocityContent.java:33)
at com.actuate.iserver.mail.VolumeCreationMail.<init>(VolumeCreationMail.java:40)
at com.actuate.iserver.mail.VolumeCreationMail.main(VolumeCreationMail.java:67)
在这两种情况下,temlateFile.exists() 总是返回 true。
有什么想法?
\\remote\config\emails\MailBody.vm
作为路径吗?这是无效的,因为 \ 是转义字符。或者你使用了\\\\remote\\config\\emails\\MailBody.vm
? - Sergiu Dumitriu\\aa\bb\cc\mail
,但在代码中,我必须将URL更改为//aa/bb/cc/mail
。 - vanduc1102