public void receiveJmsMail(MapMessage mailContent) {
String senderAddress = null; //发送者
String receiverAddress = null; //接收者
String content = null; //发送内容
String priority = null; //发送主题
int mailId = 0;
try {
senderAddress = mailContent.getString(Constans.SEND_USER_ID);
content = mailContent.getString(Constans.MSG_CONTENT);
receiverAddress = mailContent.getString(Constans.RECEIVE_USER);
priority = mailContent.getString(Constans.TITLE);
mailId = Integer.parseInt(mailContent.getString(Constans.SMS_ID));
} catch (JMSException e) {
log.error("邮件内容异常 : ",e);
return ;
}
try{
MailMessage email = new MailMessage(receiverAddress, content, priority);
SendMailMessage sendMailMessage = new SendMailMessageImpl();
SendMessageResult result = sendMailMessage.sendMail(email);
if(result.getResultCode().equals("0")){
msgService.update(mailId, "发送成功");
log.info("[邮件消息发送成功,发送者:"+senderAddress+",接收者邮箱:"+receiverAddress+"]");
}else if(result.getResultCode().equals("1")){
msgService.update(mailId, "发送失败");
log.info("[邮件消息发送失败,发送者:"+senderAddress+",接收者邮箱:"+receiverAddress+"]");
}else if(result.getResultCode().equals("2")){
retryGiveSendMsg(mailContent,2);//发生异常,重发消息
msgService.update(mailId,"系统正在重发");
}
}catch(Exception e){
log.error("发送邮件消息异常异常,系统将在:"+delyTime/60/1000+"分钟后重新发送!",e);
retryGiveSendMsg(mailContent,2);//发生异常,重发消息
msgService.update(mailId,"系统正在重发");
}
}
package cn.wzb.common.msg.mail;
/**
* send mail content
* @author gouwei
*
*/
public class MailMessage {
String receiverAddress; //接受者邮箱地�?
String content; //邮件内容
String priority; // 邮件主题
public String getReceiverAddress() {
return receiverAddress;
}
public void setReceiverAddress(String receiverAddress) {
this.receiverAddress = receiverAddress;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getPriority() {
return priority;
}
public void setPriority(String priority) {
this.priority = priority;
}
public MailMessage(String receiverAddress,
String content, String priority) {
this.receiverAddress = receiverAddress;
this.content = content;
this.priority = priority;
}
}调用这个方法的时候报错:NoClassDefFoundError:MailMessage
如果把MailMessage改为单例的。
则不会报这个错。而是:NoClassDefFoundError:SendMailMessageImpl
如果把SendMailMessageImpl改为单例的。
则不会报这个错。而是:NoClassDefFoundError:SendMessageResult
小弟百思不得其解。
调用receiveJmsMail方法为:
/**
* 邮件消息出jms队列
* @author gouwei
*/
public class QueueComsumerMail extends QueueBase implements MessageListener {
private static final long serialVersionUID = 1L;
private static final Logger log = LoggerFactory.getLogger(QueueComsumerMail.class);
//private MessageDrivenContext mdc;
private QueueReceiver queueReceiver;
private JmsCommon jmsCommon = new JmsCommonImpl();
/**
* 邮件接收消息
* @param Message
*/
public QueueComsumerMail() throws JMSException {
queueReceiver = queueSession.createReceiver(queueMail);
queueReceiver.setMessageListener(this);
queueConnection.start();
}
/**
* 邮件接收消息
* @param Message
*/
public void onMessage(Message message) {
try {
MapMessage mailContent = (MapMessage)message;
jmsCommon.receiveJmsMail(mailContent);
} catch (Exception e) {
//mdc.setRollbackOnly();
log.error("接收邮件消息异常!",e);
}
}
public void close() throws JMSException {
queueReceiver.close();
queueSession.close();
queueConnection.close();
}
有点着急,希望大家帮我分析分析。。谢谢了!
相关推荐
标题 "NoClassDefFoundError: jxl/WorkbookSettings" 是一个常见的Java运行时错误,意味着在尝试执行程序时,系统无法找到某个类的定义。这个错误通常发生在类路径(ClassPath)配置不正确或者缺少了必要的库依赖时...
标题 "java.lang.NoClassDefFoundError: javax/persistence/EntityListener" 提到的问题是一个常见的Java运行时异常,通常表示在类加载时找不到指定的类定义。这个错误在Java应用程序或Web应用中出现,可能是因为...
标题中的“JSON中,java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher问题解决”指的是一类常见的Java运行时错误,当尝试加载一个类时,如果Java虚拟机(JVM)找不到该类的定义,就会抛出`...
### Java中的`java.lang.NoClassDefFoundError`: javax/mail/Message #### 错误概述 在Java编程过程中遇到`java.lang.NoClassDefFoundError`是一个常见的问题,这种异常通常发生在试图加载一个类时,该类在编译时...
在Java编程中,遇到“Exception in thread 'main' java.lang.NoClassDefFoundError”是一种常见的异常情况,这通常意味着JVM在运行时未能找到指定的类定义。此错误不同于ClassNotFoundException,后者发生在尝试加载...
在Java编程中,`java.lang.NoClassDefFoundError` 是一个常见的运行时错误,它发生在类加载器尝试执行一个类,但在类路径中找不到该类的定义时。在这个特定的场景中,问题聚焦于 `net.sf.ezmorph.Morpher` 类。`...
JavaMail的java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream错误 原因: MyEclipse6.5的javaee.jar中的mail包与JavaMail包有冲突。 解决: 在MyEclipse目录下(D:\Program Files\MyEclipse ...
在Java编程中,`java.lang.NoClassDefFoundError` 是一个常见的运行时异常,它发生在类加载器尝试加载一个在编译时存在但在运行时找不到的类定义时。这个错误通常意味着类路径设置不正确或者依赖项没有正确地被包含...
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jersey/api/client/config/ClientConfig at org.apache.hadoop.yarn.client.api.TimelineClient.createTimelineClient(TimelineClient.java:...
### Java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory #### 错误概述 在给定的日志片段中,出现了一个常见的Java运行时错误:“`java.lang.NoClassDefFoundError: org/apache/commons/...
Java编程中的`java.lang.NoClassDefFoundError: org/jboss/logging/`是一个常见的运行时错误,通常发生在尝试执行一个类时,JVM无法找到在编译时已经存在的类定义。这个错误并不意味着类在编译期间不存在,而是表明...
在Java开发过程中,我们经常会遇到`java.lang.NoClassDefFoundError`这个异常,尤其是在进行JDK版本升级时。这个错误通常表示在运行时找不到某个类的定义,即使编译时该类是可用的。在本例中,问题发生在从一个较低...
标题中的“java.lang.NoClassDefFoundError: javax/tools/StandardJavaFile”是一个常见的Java运行时错误,它表示在类路径中找不到某个类的定义。这个错误通常发生在试图执行包含特定类的代码,但该类在运行时环境中...
java.lang.NoClassDefFoundError: de/javakaffee/kryoserializers/CurrencySerializer
NoClassDefFoundError: org/slf4j/LoggerFactory解决方案,需要添加的三个jar包都在,slf4j-api-1.5.2,slf4j-log4j12-1.5.2,log4j-1.2.12
jackson-annotations-2.10.2.jar jackson-core-2.10.2.jar jackson-databind-2.10.2.jar NoClassDefFoundError解决
java.lang.NoClassDefFoundError: com/sun/activation/registries/LogSupport异常处理
该jar包解决报错java.lang.NoClassDefFoundError: org/apache/james/mime4j/MimeException,亲测可用。