0

SpringMVCサイト内でVelocityを使用してメールをテンプレート化しようとしています。Velocityが私が使用したいテンプレートを見つけることができれば、すべてがうまくいくと思います。にテンプレートがあり/WEB-INF/emails/faultNotification.vmます。私のコードでは、これがあります:

MimeMessageHelper helper = new MimeMessageHelper (message, true);
helper.setTo (toAddresses);
helper.setSubject (subject);
Map<String, Object> model = new HashMap<> ();
model.put ("username", "nikitin");
model.put ("emailAddress", "nik.estep@gmail.com");
helper.setText (VelocityEngineUtils.mergeTemplateIntoString (
                                 m_emailEngine,
                                 "faultNotification.vm",
                                 model), true);
helper.addAttachment (attachmentName,
                      new ByteArrayResource (attachment.toByteArray ()),
                      "application/zip");
m_sender.send (message);

私のXMLには、次のものがあります。

<bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
        <property name="resourceLoaderPath" value="file:/WEB-INF/emails" />
</bean>
<bean id="emailSender" class="com.tarigma.gem.communication.EmailSender">
    <constructor-arg ref="systemSettings" />
    <constructor-arg ref="velocityEngine" />
</bean>

私は見つけた投稿を読んでいて、私が言えることから、これはうまくいくはずですが、Velocityはそれを使用しようとするとテンプレートを見つけることができません(ERROR VelocityEngine - ResourceManager: Unable to find resource 'faultNotification.vm' in any resource loader)。テンプレートを入れたくない/WEB-INF/classesのは、それがそのフォルダーに入るものではなく、これを機能させる方法が必要だからです。どんな助けでもありがたいです、私はこれを解決しようとして昨日すべてを失いました。

4

1 に答える 1

3

戦争が展開された形式で展開されない限り、ファイル URL はありません。私は設定しようとします:

http://velocity.apache.org/tools/devel/javadoc/org/apache/velocity/tools/view/WebappResourceLoader.html

ファイルリソースローダーの代わりに、戦争のルートから始まるフルパスを使用します

于 2012-10-05T14:58:39.753 に答える