Hoi allemaal,
Ik probbeer via applicationContext.xml aantal beans te configureren die nodig zijn voor email functionaliteit. Ik maak gebruik van MimeMessage voor email bericht, omdat ik bijlagen moet kunnen versturen.
Eerst getest met simpleMailMessage en alles werkte. Toen de bean aangepast naar MimeMessage:
Met MimeMessage krij ik de volgende error:
Nu heb ik kunnen uitvissen dat dit veroorzaakt wordt door het onbreken van een empty constructor voor MimeMessage. Default constructor daarvoor is MimeMessage(Session session) waarbij Session afkomstig is van javax.mail.Session. En die heeft natuurlijk helemaal geen constructor. (Normaliter haal je een sessie op d.m.v. Session.getInstance()).
Hoe geef ik dus een Session.getInstance() als argument mee aan MimeMessage?
Ik tot zover gekomen, maar nog geen succes gehad:
Ik probbeer via applicationContext.xml aantal beans te configureren die nodig zijn voor email functionaliteit. Ik maak gebruik van MimeMessage voor email bericht, omdat ik bijlagen moet kunnen versturen.
Eerst getest met simpleMailMessage en alles werkte. Toen de bean aangepast naar MimeMessage:
code:
1
2
3
4
5
6
7
8
| <bean id="enrollmentMailMessage" class="javax.mail.internet.MimeMessage"> <property name="from"> <value>a@b.com</value> </property> <property name="subject"> <value>Course enrollment report</value> </property> </bean> |
Met MimeMessage krij ik de volgende error:
code:
1
2
3
4
5
6
7
| org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'enrollmentMailMessage' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.FatalBeanException: Could not instantiate class [javax.mail.internet.MimeMessage]: no default constructor found; nested exception is java.lang.NoSuchMethodException: javax.mail.internet.MimeMessage.<init>() org.springframework.beans.FatalBeanException: Could not instantiate class [javax.mail.internet.MimeMessage]: no default constructor found; nested exception is java.lang.NoSuchMethodException: javax.mail.internet.MimeMessage.<init>() java.lang.NoSuchMethodException: javax.mail.internet.MimeMessage.<init>() at java.lang.Class.getConstructor0(Class.java:2647) ... |
Nu heb ik kunnen uitvissen dat dit veroorzaakt wordt door het onbreken van een empty constructor voor MimeMessage. Default constructor daarvoor is MimeMessage(Session session) waarbij Session afkomstig is van javax.mail.Session. En die heeft natuurlijk helemaal geen constructor. (Normaliter haal je een sessie op d.m.v. Session.getInstance()).
Hoe geef ik dus een Session.getInstance() als argument mee aan MimeMessage?
Ik tot zover gekomen, maar nog geen succes gehad:
code:
1
2
3
4
5
6
| <bean id="session" class="javax.mail.Session" factory-method="getInstance"/> <bean id="enrollmentMailMessage" class="javax.mail.internet.MimeMessage" > <constructor-arg><ref bean="session"/></constructor-arg> ... </bean> |