2016-09-17 25 views
1

私はactivemqとspring jmsを使用します。私は問題があります。Spring jms activemq

これは、これは私のEmailHandlerである私の電子メールの送信

@Service 
@PropertySource("classpath:/properties/dev/application.properties") 
public class EmailSenderImpl implements EmailSender { 
    private static final Logger LOGGER = LoggerFactory.getLogger(EmailSenderImpl.class); 

    @Autowired 
    private JmsTemplate jmsTemplate; 

    @Autowired 
    private Environment env; 

    @Override 
    public void sendEmail(final Users user, EmailCauses emailCause) { 
     LOGGER.debug("Sending email to user with id {} with cause {}", user.getId(), emailCause); 

     //Retrieve User profile which defined with lazy fetch type. 
     //It prevents org.hibernate.LazyInitializationException in jms message receiver method 
     user.getUserProfile(); 

     jmsTemplate.send(env.getProperty(emailCause.getEmailQueueName()), 
       new MessageCreator() { 

        @Override 
        public Message createMessage(Session session) throws JMSException { 
         return session.createObjectMessage(user); 
        } 
       } 
     ); 
    } 

です。

@Service 
public class EmailHandler { 
    private static final Logger LOGGER = LoggerFactory.getLogger(EmailHandler.class); 

    private JavaMailSender mailSender; 
    private VelocityEngine velocityEngine; 
    private MessageSource messageSource; 


    @Autowired 
    public EmailHandler (JavaMailSender mailSender, VelocityEngine velocityEngine, MessageSource messageSource) { 

     this.mailSender = mailSender; 
     this.velocityEngine = velocityEngine; 
     this.messageSource = messageSource; 
    } 


    //TODO - refactor method, add reserve server 
    @Transactional 
    public void processEmailNotifications (Users user) throws MessagingException, UnsupportedEncodingException { 
     LOGGER.debug("Preparing to send greeting email to user {}", user); 

     UserProfiles userProfile = user.getUserProfile(); 

     Map <String, Object> model = new HashMap <>(); 
     model.put("name", userProfile.getName()); 
     model.put("patronymic", userProfile.getPatronymic()); 
     model.put("token", UriUtils.encode(user.getConfirmationToken(), "UTF8")); 

     String email = user.getUserProfile().getEmail(); 
     sendEmail(email, "email.wellcome.subject", model, "wellcome_email.vm"); 

    } 
    private void sendEmail (String emailTo, String subjectMessage, Map<String, Object> model, String templateName) { 
     LOGGER.debug("Sending email to {} with subject message {}", emailTo, subjectMessage); 

     try { 

      MimeMessage message = mailSender.createMimeMessage(); 
      MimeMessageHelper helper = new MimeMessageHelper (message, true, "UTF-8"); 

      helper.setTo(emailTo); 
      helper.setSubject(messageSource.getMessage(subjectMessage, null, Locale.getDefault())); 

      String emailText = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, templateName, "UTF-8", model); 
      helper.setText(emailText, true); 

      mailSender.send(message); 
      LOGGER.info("Email to address {} with subject {} was sent successfully", emailTo, subjectMessage); 

     } catch (MessagingException me) { 
      LOGGER.error("Email to address {} was not sent", emailTo, me); 

     } 

    } 

スタックトレースには次のようなログがあります。なぜそれが動作しないのか分かりません。

osjms.core.JmsTemplate - JMSセッション上で実行されるコールバック: ActiveMQSession {ID = ID:イゴール・熱望-5820TG-33061-1474030841626-1:7:1 =偽開始} 2016-を[http-bio-8080-exec-6] [DEBUG] osjms.core.JmsTemplate - 作成したメッセージの送信: ActiveMQTextMessage {commandId = 0、responseRequired = false、 messageId = null 、originalDestination =ヌル、originalTransactionId = ヌル、のproducerId =ヌル、宛先= NULL、のtransactionId =ヌル、 期限= 0、タイムスタンプ= 0、到着= 0、brokerInTime = 0、 brokerOutTime = 0、 ID = null、replyTo = null、永続性= false、type = null、優先度= 0、groupID = null、groupSequence = 0、 targetConsumerId = null、圧縮= false、ユーザーID = null、コンテンツ= null、marshalledProperties = null = XDDD}

答えて

0

、データ構造=ヌル、 redeliveryCounter = 0、サイズ= 0、プロパティ=ヌル、readOnlyProperties = falseを、readOnlyBody =偽、偽=ドロップ可能、テキストは、他のログとJmsTemplateセットアップの設定を投稿することができますセッションがあなたのログで開始されていないため、プロデューサ、メッセージIDおよび宛先...の情報がNULLです

関連する問題