it-swarm.com.de

Automatische Ausnahme für Frühling (Feld konnte nicht automatisch eingerichtet werden ..)

In RegistrationService funktionieren @Autowired registrationDao und registerCustomer in Ordnung. ActivationMailService kann nicht automatisch verdrahtet werden. 

Ich habe das Problem nicht gefunden. Es funktioniert, wenn ich ActivationMailService in RegistrationService entferne. Kann mir jemand bitte sagen, was das Problem in meinem Code ist?

Ich habe das Projekt nach http://www.mediafire.com/?baum85us0rmmue3 hochgeladen.

Diese Fehlermeldung wird beim Ausführen der Anwendung angezeigt:

Hibernate: drop table if exists Customer
ERROR: org.springframework.web.context.ContextLoader - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'activationMailServiceImpl': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: protected com.game.portal.utils.SendMail com.game.portal.services.impl.ActivationMailServiceImpl.sendMail; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sendMail': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: org.springframework.mail.javamail.JavaMailSenderImpl com.game.portal.utils.SendMail.mailSender; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.mail.javamail.JavaMailSenderImpl] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.Java:289)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.Java:1146)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.Java:519)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.Java:458)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.Java:296)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.Java:223)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.Java:293)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.Java:194)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.Java:628)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.Java:932)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.Java:479)
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.Java:389)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.Java:294)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.Java:112)
    at org.Apache.catalina.core.StandardContext.listenerStart(StandardContext.Java:4939)
    at org.Apache.catalina.core.StandardContext.startInternal(StandardContext.Java:5434)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    at org.Apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.Java:1559)
    at org.Apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.Java:1549)
    at Java.util.concurrent.FutureTask.run(Unknown Source)
    at Java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at Java.lang.Thread.run(Unknown Source)
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: protected com.game.portal.utils.SendMail com.game.portal.services.impl.ActivationMailServiceImpl.sendMail; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sendMail': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: org.springframework.mail.javamail.JavaMailSenderImpl com.game.portal.utils.SendMail.mailSender; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.mail.javamail.JavaMailSenderImpl] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.Java:517)
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.Java:87)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.Java:286)
    ... 22 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sendMail': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: org.springframework.mail.javamail.JavaMailSenderImpl com.game.portal.utils.SendMail.mailSender; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.mail.javamail.JavaMailSenderImpl] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.Java:289)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.Java:1146)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.Java:519)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.Java:458)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.Java:296)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.Java:223)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.Java:293)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.Java:194)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.Java:912)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.Java:855)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.Java:770)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.Java:489)
    ... 24 more
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: org.springframework.mail.javamail.JavaMailSenderImpl com.game.portal.utils.SendMail.mailSender; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.mail.javamail.JavaMailSenderImpl] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.Java:517)
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.Java:87)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.Java:286)
    ... 35 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.mail.javamail.JavaMailSenderImpl] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.Java:988)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.Java:858)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.Java:770)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.Java:489)
    ... 37 more
Jan 14, 2014 11:45:14 AM org.Apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'activationMailServiceImpl': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: protected com.game.portal.utils.SendMail com.game.portal.services.impl.ActivationMailServiceImpl.sendMail; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sendMail': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: org.springframework.mail.javamail.JavaMailSenderImpl com.game.portal.utils.SendMail.mailSender; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.mail.javamail.JavaMailSenderImpl] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.Java:289)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.Java:1146)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.Java:519)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.Java:458)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.Java:296)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.Java:223)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.Java:293)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.Java:194)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.Java:628)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.Java:932)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.Java:479)
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.Java:389)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.Java:294)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.Java:112)
    at org.Apache.catalina.core.StandardContext.listenerStart(StandardContext.Java:4939)
    at org.Apache.catalina.core.StandardContext.startInternal(StandardContext.Java:5434)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    at org.Apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.Java:1559)
    at org.Apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.Java:1549)
    at Java.util.concurrent.FutureTask.run(Unknown Source)
    at Java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at Java.lang.Thread.run(Unknown Source)
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: protected com.game.portal.utils.SendMail com.game.portal.services.impl.ActivationMailServiceImpl.sendMail; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sendMail': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: org.springframework.mail.javamail.JavaMailSenderImpl com.game.portal.utils.SendMail.mailSender; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.mail.javamail.JavaMailSenderImpl] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.Java:517)
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.Java:87)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.Java:286)
    ... 22 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sendMail': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: org.springframework.mail.javamail.JavaMailSenderImpl com.game.portal.utils.SendMail.mailSender; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.mail.javamail.JavaMailSenderImpl] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.Java:289)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.Java:1146)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.Java:519)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.Java:458)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.Java:296)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.Java:223)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.Java:293)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.Java:194)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.Java:912)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.Java:855)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.Java:770)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.Java:489)
    ... 24 more
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: org.springframework.mail.javamail.JavaMailSenderImpl com.game.portal.utils.SendMail.mailSender; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.mail.javamail.JavaMailSenderImpl] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.Java:517)
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.Java:87)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.Java:286)
    ... 35 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.mail.javamail.JavaMailSenderImpl] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.Java:988)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.Java:858)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.Java:770)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.Java:489)
    ... 37 more

Bean verwalten:

package com.game.portal.managedbeans;

import Java.io.Serializable;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;

import com.game.portal.entities.Customer;
import com.game.portal.services.RegistrationService;

@ViewScoped
@ManagedBean
public class CustomerBean implements Serializable {

    private static final long serialVersionUID = 7291708796066664438L;

    @ManagedProperty(value="#{registrationService}")
    RegistrationService registrationService;

    Customer customer = new Customer();

    public void registerCustomer(){
        customer.setName("xxx");
        customer.setSurname("xxx");
        customer.setUsername("xxx");
        customer.setEmail("[email protected]");
        customer.setPassword("xxxx");

        registrationService.registerCustomer(customer);

    }

    public Customer getCustomer() {
        return customer;
    }

    public void setCustomer(Customer customer) {
        this.customer = customer;
    }

    public RegistrationService getRegistrationService() {
        return registrationService;
    }

    public void setRegistrationService(RegistrationService registrationService) {
        this.registrationService = registrationService;
    }

}

Hier ist RegistrationService

package com.game.portal.services;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.game.portal.dao.RegistrationDao;
import com.game.portal.entities.Company;
import com.game.portal.entities.Customer;

@Service
public class RegistrationService {

    @Autowired
    RegistrationDao registrationDao;

    @Autowired
    ActivationMailService activationMailService;

    public void registerCustomer(Customer customer) {

        System.out.println("RegistrationUserBean:: Registering user " + customer.getName() + " " + customer.getUsername() + ", with email " + customer.getEmail());
        registrationDao.registerCustomer(customer);
        activationMailService.sendActivationMail(customer);

        FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Registration success", "success");  
        FacesContext.getCurrentInstance().addMessage(null, msg);
    }

    public void registerCompany(Company company) {

        System.out.println("RegistrationUserBean:: Registering user " + company.getName() + " " + company.getUsername() + ", with email " + company.getEmail());
        registrationDao.registerCompany(company);

        FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Registration success", "success");  
        FacesContext.getCurrentInstance().addMessage(null, msg);
    }

}

ActivationMailService

Hinweis: Ich habe das Entfernen von @Autowired auf SendMail, HashMap und EmailTemplateService getestet. Es klappt. Es gibt kein Problem mit @Autowired bei ActivationCodeService. Es ist wirklich seltsam.

package com.game.portal.services;

import Java.io.UnsupportedEncodingException;
import Java.net.URLEncoder;
import Java.util.HashMap;

import org.Apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.game.portal.entities.Customer;
import com.game.portal.utils.SendMail;

@Service
public class ActivationMailService {

    @Autowired
    protected ActivationCodeService activationCodeService;  
    @Autowired
    protected SendMail sendMail;
    @Autowired
    protected HashMap<String, String> emailMap;
    @Autowired
    private EmailTemplateService mailTemplateService;

    protected static final Logger logger = Logger.getLogger("ActivationMailService");   

    public void sendActivationMail(Customer customer) {
        try {
            sendMail.send("test", "test", customer.getEmail(), createActivationMailMessage(customer));
        } catch (UnsupportedEncodingException e) {
            logger.error(e.getMessage(), e);
        }
    }

    private String createActivationMailMessage(Customer customer) throws UnsupportedEncodingException {
        String emailTemplate = mailTemplateService.generateTemplate("activation", emailMap.get("domain_name"));

        return emailTemplate;
    }
}

SendMail.class

import Java.util.ArrayList;
import Java.util.HashMap;

import javax.activation.FileDataSource;
import javax.mail.internet.MimeMessage;

import org.Apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.context.annotation.Scope;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;

@Lazy(true)
@Scope("singleton")
@Service
public class SendMail {

    private static Logger logger = Logger.getLogger(SendMail.class);

    @Autowired
    JavaMailSenderImpl mailSender;

    @Autowired
    private HashMap<String, String> emailMap;

    public boolean send(String subject, String from, String[] to, String message) {
        boolean sendSuccessfull = true;

        MimeMessage mailMessage = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(mailMessage, "UTF-8");
        try {
            helper.setFrom(from, emailMap.get("fromName"));
            helper.setTo(to);
            helper.setSubject(subject);
            helper.setText(message, true);
            mailSender.send(mailMessage);
            logger.warn("SEND MAIL TO : " + to + " WITH SUBJECT " + subject
                + " OK ");
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
            sendSuccessfull = false;
        }

        return sendSuccessfull;
    }

    public boolean send(String subject, String from, String to, String message) {   
        boolean sendSuccessfull = true;

        MimeMessage mailMessage = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(mailMessage, "UTF-8");
        try {
            helper.setFrom(from, emailMap.get("fromName"));
            helper.setTo(to);
            helper.setSubject(subject);
            helper.setText(message, true);
            mailSender.send(mailMessage);
            logger.warn("SEND MAIL TO : " + to + " WITH SUBJECT " + subject
                + " OK ");
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
            sendSuccessfull = false;
        }

        return sendSuccessfull;
    }

    public boolean send(String subject, String from, String[] to, String[] cc, String message) {
        boolean sendSuccessfull = true;

        MimeMessage mailMessage = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(mailMessage, "UTF-8");
        try {
            helper.setFrom(from, emailMap.get("fromName"));
            helper.setTo(to);
            helper.setCc(cc);
            helper.setSubject(subject);
            helper.setText(message, true);
            mailSender.send(mailMessage);
            logger.warn("SEND MAIL TO : " + to + " WITH SUBJECT " + subject
                + " OK ");
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
            sendSuccessfull = false;
        }

        return sendSuccessfull;
    }

    public boolean send(String subject, String from, String to, String cc, String message) {
        boolean sendSuccessfull = true;

        MimeMessage mailMessage = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(mailMessage, "UTF-8");
        try {
            helper.setFrom(from, emailMap.get("fromName"));
            helper.setTo(to);
            helper.setCc(cc);
            helper.setSubject(subject);
            helper.setText(message, true);
            mailSender.send(mailMessage);
            logger.warn("SEND MAIL TO : " + to + " WITH SUBJECT " + subject
                + " OK ");
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
            sendSuccessfull = false;
        }

        return sendSuccessfull;
    }

    public boolean send(String subject, String from, String[] to, String[] cc,
        String message, ArrayList<String> attachmentfilenamelist,
        ArrayList<String> attachmentfilewithpathlist) {
        boolean sendSuccessfull = true;

        MimeMessage mailMessage = mailSender.createMimeMessage();
        MimeMessageHelper helper;
        try {
            helper = new MimeMessageHelper(mailMessage, true, "UTF-8");
            helper.setFrom(from, emailMap.get("fromName"));
            helper.setTo(to);
            helper.setCc(cc);
            helper.setSubject(subject);
            helper.setText(message, true);
            for (int i = 0; i < attachmentfilenamelist.size(); i++) {
            helper.addAttachment(attachmentfilenamelist.get(i),
                new FileDataSource(attachmentfilewithpathlist.get(i)));
            }
            mailSender.send(mailMessage);
            logger.warn("SEND MAIL TO : " + to + " WITH SUBJECT " + subject
                + " OK ");
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
            sendSuccessfull = false;
        }

        return sendSuccessfull;
    }

    public boolean sendFromUser(String subject, String from, String fromName, String []to, String message) {
        boolean sendSuccessfull = true;

        MimeMessage mailMessage = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(mailMessage, "UTF-8");
        String toAdresses = "";
        for (int i = 0; i < to.length; i++) {
            if(i == 0)
                toAdresses = to[i];
            else
                toAdresses = toAdresses + ", " + to[i];
        }
        try {
            helper.setFrom(from, fromName);
            helper.setTo(to);
            helper.setSubject(subject);
            helper.setText(message, true);
            mailSender.send(mailMessage);
            logger.warn("SEND MAIL TO : " + toAdresses + " WITH SUBJECT " + subject
                + " OK ");
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
            sendSuccessfull = false;
        }

        return sendSuccessfull;
    }
}
6
user1662738

Basierend auf Ausnahme:

org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.mail.javamail.JavaMailSenderImpl]

es scheint, dass Spring keine Bohne finden kann, in die gespritzt werden soll 

@Autowired
JavaMailSenderImpl mailSender;

in SendMail Klasse.

Sind Sie sicher, dass eine Bean der Klasse JavaMailSenderImpl definiert ist?

Übrigens Es ist etwas ungewöhnlich, dass eine Implementierungsklasse direkt (und nicht die Schnittstelle) eingefügt wird.

7
Adam Dyga

Die Methoden in der Service-Klasse sollten @Transactional kommentiert werden

1
user2791841

schreiben Sie @Service ("sendMail") in Ihrer automatisch eingestellten Klasse

0
Guruputra