首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >spring freemarker ConversionNotSupportedException

spring freemarker ConversionNotSupportedException
EN

Stack Overflow用户
提问于 2011-06-23 23:46:21
回答 1查看 1.4K关注 0票数 0

我正在尝试在我的JBoss 5.1 web应用服务器上的web应用中使用Freemarker来处理模板电子邮件。

mail-context-xml:

代码语言:javascript
运行
复制
<bean id="freemarkerConfiguration"
    class="org.springframework.ui.freemarker.FreeMarkerConfigurationFactoryBean">
    <property name="templateLoaderPath" value="/WEB-INF/templates" />
</bean>


<bean id="registrationMailService" class="com.epam.darts.webapp.utils.RegistrationMailService">
    <property name="configuration" ref="freemarkerConfiguration" />
    <property name="mailSender" ref="mailSender" />
</bean>

RegistrationMailService.java:

代码语言:javascript
运行
复制
public class RegistrationMailService {

    private JavaMailSender mailSender;
    private Configuration configuration;

    public void sendConfirmationEmail(final User user) {
        MimeMessage message = this.mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message);
        try {
            helper.setFrom(user.getLogin());

            helper.setTo(user.getLogin());
            helper.setSubject(user.getLogin());

            Map<String, Object> model = new HashMap<String, Object>();
            model.put("user", user);

            String sendText = FreeMarkerTemplateUtils.processTemplateIntoString(
                        this.configuration.getTemplate("regisstration_mail.html"), model);
            helper.setText(sendText, true);
            this.mailSender.send(helper.getMimeMessage());
        }
        catch(MessagingException e) {
            e.printStackTrace();
           }
    }

    public void setMailSender(final JavaMailSender mailSender) {
        this.mailSender = mailSender;
    }
    public void setConfiguration(final Configuration configuration) {
        this.configuration = configuration;
    }
}

maven对freemarker的依赖性:

代码语言:javascript
运行
复制
    <dependency>
        <groupId>freemarker</groupId>
        <artifactId>freemarker</artifactId>
        <version>2.3.9</version>
    </dependency>

第一次它运行良好。但是,如果我尝试重新部署我的应用程序(mvn clean package jboss:hard-deploy),我会得到错误

代码语言:javascript
运行
复制
 18:17:46,839 ERROR [ContextLoader] Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'registrationMailService' defined in
ServletContext resource [/WEB-INF/spring/spring-mail.xml]: Initialization of bean failed; nested exception is org.springfram
ework.beans.ConversionNotSupportedException: Failed to convert property value of type 'freemarker.template.Configuration' to
 required type 'freemarker.template.Configuration' for property 'configuration'; nested exception is java.lang.IllegalStateE
xception: Cannot convert value of type [freemarker.template.Configuration] to required type [freemarker.template.Configurati
on] for property 'configuration': no matching editors or conversion strategy found

问题可能出在类加载器中,但我不知道如何修复它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-24 05:41:41

看起来您的类路径中有两个freemarker的JAR文件副本。你需要找到它们,并将其缩小到一个。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6456890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档