2011-06-23 45 views
0

我正在尝试在我的Web应用程序中使用Freemarker作为模板电子邮件来使用JBoss 5.1 Web应用程序服务器。spring freemarker ConversionNotSupportedException

邮件上下文的xml:

<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:为freemarker的

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; 
    } 
} 

行家depandency:

它的工作好
<dependency> 
     <groupId>freemarker</groupId> 
     <artifactId>freemarker</artifactId> 
     <version>2.3.9</version> 
    </dependency> 

第一次。但是,如果我尝试重新部署我的应用程序(MVN清洁套装JBoss的:硬部署)我有错误

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 

可能的问题是类加载器,但我不知道如何解决它。

回答

1

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

+0

你真是太棒了。我有我的jboss类加载器的问题 – Shurok