环境:struts+spring
sendmail类的具体内容参照http://www.blogjava.net/sunfruit/archive/2006/02/19/31523.html
执行代码: String mailPathlog="logs";
String username="xxxx";//用户名
String pwd="xxxxx";//密码
String myname="xxxxx";//发送邮件名
String tomail="xxxxx";//目的邮件
String mysubject="这是一个测试";
String mytext="这是一个测试邮件内容";
String htmlandtext="text";
String s=SendMail.sendmail(mailPathlog,pwd,username,myname,tomail,mysubject,mytext,htmlandtext);
问题:
在action调用sendmail类的一个方法时提示如下错误:
严重: Servlet.service() for servlet default threw exception
java.lang.NullPointerException
at com.(...).adminbg.action.(....).sendMail(UserAdministerAction.java:761)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)
at com.chemmade.utils.CheckLoginInterceptor.doIntercept(CheckLoginInterceptor.java:30)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:221)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150)
at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:48)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:167)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
.
.
.
PS:javamial的2个包不缺少,在执行到sendmail时报错
sendmail类的具体内容参照http://www.blogjava.net/sunfruit/archive/2006/02/19/31523.html
执行代码: String mailPathlog="logs";
String username="xxxx";//用户名
String pwd="xxxxx";//密码
String myname="xxxxx";//发送邮件名
String tomail="xxxxx";//目的邮件
String mysubject="这是一个测试";
String mytext="这是一个测试邮件内容";
String htmlandtext="text";
String s=SendMail.sendmail(mailPathlog,pwd,username,myname,tomail,mysubject,mytext,htmlandtext);
问题:
在action调用sendmail类的一个方法时提示如下错误:
严重: Servlet.service() for servlet default threw exception
java.lang.NullPointerException
at com.(...).adminbg.action.(....).sendMail(UserAdministerAction.java:761)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)
at com.chemmade.utils.CheckLoginInterceptor.doIntercept(CheckLoginInterceptor.java:30)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:221)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150)
at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:48)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:167)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
.
.
.
PS:javamial的2个包不缺少,在执行到sendmail时报错
* 发送邮件
*/
public String sendEmail(users u,String Cdkey)
{
Properties p = new Properties();
//是否需要登录验证,答案是肯定的
p.setProperty("mail.smtp.auth","true" );
//选择的(发送)邮件服务器
p.setProperty("mail.host","smtp.qq.com" );
//定义你的邮件传输协议
p.setProperty("mail.transport.protocol","smtp" );
//你的邮箱(发件人)
p.setProperty("mail.from", "[email protected]");
//是否输出调试信息
p.setProperty("mail.debug","true" );
//创建与服务器的会话(需要用户名和密码)
Session session = Session.getInstance(p, new Authenticator(){
//通过Authenticator的实例来提交用户名和密码信息BASE 64
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("[email protected]","123456");//邮箱密码
}
});
Message message = new MimeMessage(session);
try {
//设置邮件主题
message.setSubject("主题:激活Article的邮件");
//邮件发送时间
message.setSentDate(new Date());
//发送人的伪地址
message.setReplyTo(new InternetAddress[]{new InternetAddress("Article")});
//邮件内容
message.setText(u.getUsersName()+" 请点击超链接,http://192.168.83.179:8080/Article/register.jsp?cdkey="+Cdkey+",激活该账号");
Transport tran = session.getTransport();
//发送
tran.send(message, new InternetAddress[]{new InternetAddress(u.getUsersEmail())});
//传送完成
tran.close();
return SUCCESS;
} catch (MessagingException e) {
return ERROR;
}
}
现在的问题是在调用SendMail是掉不到
具体描述如下:
增加了一个.java为发送短信的类SendMail,sendmail负责发送
在需要调用的地方import com.xxx.xxx.SendMail
private SendMail SendMail;
然后SendMail.sendmail();
在调试的时候发现SendMail为空,不能调用sendmail方法