0

春のSimpleMailMessageを使用していますが、メール機能を送信しようとするたびに、次の例外が発生します。

java.lang.IllegalArgumentException: The 'original' message argument cannot be null

私のspring.xml

   <bean id="MailSender" class="com.util.MailSender">

    <property name="mailSender" ref="mailSender"/>
    <property name="templateMessage" ref="templateMessage"/>

</bean>

MailSender クラス:

  private MailSender mailSender;
    private SimpleMailMessage templateMessage;

    //getter and setter
    public void sendMail(String content, List<String> listEmail){
        SimpleMailMessage[] mailMessageArray = new SimpleMailMessage[listEmail.size()];
        Iterator<String> iterator = listEmail.iterator();

        for (int index = 0; iterator.hasNext(); index ++){

    SimpleMailMessage message = new SimpleMailMessage(this.templateMessage);
    String toAddress = iterator.next(); 
         message.setTo(toAddress);
     message.setText(content);  
         mailMessageArray[index] = message;

    }
         this.mailSender.send(mailMessageArray);
     }

アクション Bean クラス:

 private MailSender mailSender=new MailSender();

      public void ReSend(){
         mailSender.sendMail(listBEeans[i].getEmailContent(),listEmail);
          //able to pass the content and listEmails correctly

}

アクション Bean で構成を見逃していませんか? ありがとうございました

4

2 に答える 2

0

問題は、コンストラクターで使用されるテンプレートがnull. まさか。

のコードからSimpleMailMessage

public SimpleMailMessage(SimpleMailMessage original) {
    Assert.notNull(original, "The 'original' message argument cannot be null");
...

Bean の templateMessage が実際に何かに設定されているかどうかを確認するか、MailSender から削除して、引数なしのコンストラクターを使用してください。

于 2012-09-03T17:31:32.103 に答える