JavaMail을 스프링 프레임 워크로 구성했습니다. 응용 프로그램에서 JavaMailSenderImpl을 사용했습니다. 실제로 데이터베이스에서 메일 링 등록 정보를로드하려고 시도했지만 봄 config.xml 파일에서 약간의 변경을 수행했습니다. 하지만 난있어 오류Spring JavaMailSenderImpl이 TypeMismatchException을 throw합니다.
"빈의 초기화에 실패, 상자의 예외가 org.springframework.beans.TypeMismatchException입니다 : 유형의 속성 값을 변환하는 데 실패 [com.core.springexamples.UCMSMailImpl] 필요한 유형 [org.springframework.mail.MailSender] 속성이 인 경우 'mailSender'; 중첩 예외가 java.lang.IllegalArgumentException 인 경우 : [com.core.springexamples.UCMSMailImpl] 유형의 값을 필수 유형 [org.springframework.mail] .MailSender] 속성 'mailSender': 일치하는 편집자 또는 전환 전략이 없습니다. "
내 응용 프로그램에서 변경된 사항은 아래에 나와 있습니다.
1 단계 :
<bean id="javaMailImpl" class="org.springframework.mail.javamail.JavaMailSenderImpl"></bean>
2 단계 : -
<bean id="mailSender" class="com.core.springexamples.UCMSMailImpl" scope="prototype" init-method="configuredProperties">
<property name="javaMailImpl" ref="javaMailImpl"></property>
</bean>
com.core.springexamples.UCMSMailImpl : -
public class UCMSMailImpl {
private JavaMailSenderImpl javaMailImpl;
private ConfigDAO configDAO;
public void configuredProperties(){
System.out.println("UCMSMailImpl::configuredProperties");
Properties props=new Properties();
String[] mildata=configDAO.getMailingPropData();
props.put("mail.smtp.auth", mildata[0]);
props.put("mail.smtp.starttls.enable", mildata[2]);
props.put("mail.smtp.host", mildata[3]);
props.put("mail.smtp.port", mildata[4]);
props.put("mail.smtp.host", mildata[5]);
props.put("username", mildata[6]);
props.put("password",mildata[7]);
getJavaMailImpl().setJavaMailProperties(props);
}
public JavaMailSenderImpl getJavaMailImpl() {
return javaMailImpl;
}
public void setJavaMailImpl(JavaMailSenderImpl javaMailImpl) {
this.javaMailImpl = javaMailImpl;
}
public void setConfigDAO(ConfigDAO configDAO){
this.configDAO=configDAO;
}
public ConfigDAO getConfigDAO(){
return configDAO;
}
3 단계 : - 난 노력하고 있어요 UCMSMailImpl 자바 클래스를 사용하여 MailSender.send로부터 메일을 보내라. 나는 UCMSMailImpl 빈을 참조했다.
<bean id="sendMail" class="com.core.springexamples.JavaMailing">
<property name="mailSender" ref="mailSender"></property>
</bean>
public class JavaMailing {
private MailSender mailSender;
public void sendMail(String from,String to,String text,String subject){
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(from);
message.setTo(to);
message.setSubject(subject);
message.setText(text);
mailSender.send(message);
}
/**
* @return the mailSender
*/
public MailSender getMailSender() {
return mailSender;
}
/**
* @param mailSender the mailSender to set
*/
public void setMailSender(MailSender mailSender) {
this.mailSender = mailSender;
}
4 단계 : - 나는 센드 메일 콩
ApplicationContext context =new ClassPathXmlApplicationContext("applicationContext-mail.xml");
JavaMailing m=(JavaMailing)context.getBean("sendMail");
m.sendMail("[email protected]", "[email protected]", "TEST MAIL", "TEST MAIL");
을 테스트하려고하지만 난 예외가 TypeMismatchException입니다 가지고 : [com.core.springexamples.UCMSMailImpl]에 유형의 속성 값을 변환하는 데 실패 필수 유형 [org.springframework.mail.MailSender] 속성
도와주세요.