一个使用struts和springjavamail发送邮件的方法。报的错是:
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from file [D:\Develop\apache-tomcat-5.5.23\bin\WebRoot\WEB-INF\ComplexMailSender.xml]; nested exception is java.io.FileNotFoundException: WebRoot\WEB-INF\ComplexMailSender.xml (系统找不到指定的路径。)
java.io.FileNotFoundException: WebRoot\WEB-INF\ComplexMailSender.xml (系统找不到指定的路径。)调用的文件是:
public class SendMailAction extends MappingDispatchAction { public ActionForward send(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
{
DynaActionForm sendMailForm = (DynaActionForm) form;
AbstractMessageSender ams = new AbstractMessageSender();
ams.setSubject(sendMailForm.getString("title"));
ams.setTo(sendMailForm.getString("to"));
ams.setContent(sendMailForm.getString("content"));
try
{
ComplexMessageSender.main();
}
catch(Exception e)
{
e.printStackTrace();
}
return mapping.findForward("test.jsp");
}
}发送的文件是:
public class ComplexMessageSender extends AbstractMessageSender { public void sendMessage() throws MessagingException
{
sender.send(new MessagePreparator());
}/**
* @param args
*/
public static void main() throws Exception {
// TODO Auto-generated method stub
ApplicationContext ctx = new FileSystemXmlApplicationContext(new String[]{"/WebRoot/WEB-INF/ComplexMailSender.xml"});
ComplexMessageSender sender = (ComplexMessageSender)ctx.getBean("messageSender");
AbstractMessageSender ams = new AbstractMessageSender();
sender.setSubject(ams.getSubject());
sender.setTo(ams.getTo());
System.out.println("-----------发送邮件!---------");
try
{
sender.sendMessage();
}catch (MailException me)
{
me.printStackTrace();
}
System.out.println("-----------发送成功!---------");
}
private class MessagePreparator implements MimeMessagePreparator
{
public void prepare(MimeMessage msg) throws Exception
{
AbstractMessageSender ams = new AbstractMessageSender();
//ApplicationContext ctx = new FileSystemXmlApplicationContext(new String[]{"/WebRoot/WEB-INF/applicationContext.xml"});
//ComplexMessageSender sender = (ComplexMessageSender)ctx.getBean("messageSender"); msg.addFrom(InternetAddress.parse(from));
msg.addRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
msg.setSubject(subject); MimeMultipart ma = new MimeMultipart("alternative");
msg.setContent(ma); BodyPart plainText = new MimeBodyPart();
//plainText.setText("This is the plain text version of the mail.");
plainText.setText(ams.getContent());
ma.addBodyPart(plainText); BodyPart related = new MimeBodyPart();
MimeMultipart mr = new MimeMultipart("related");
related.setContent(mr);
ma.addBodyPart(related); /*BodyPart html = new MimeBodyPart();
html.setContent("<html><head></head><body><h1>This is the HTML version of the mail." +
"</h1><img src=\"cid:001\"></body></html>", "text/html");
mr.addBodyPart(html);*/
BodyPart img = new MimeBodyPart();
img.setHeader("Content-ID", "0001");
img.setDisposition("inline");
img.setDataHandler(new DataHandler(new FileDataSource("./WebRoot/image/girl.jpg")));
mr.addBodyPart(img);
}
}}请原因是什么,是不能用FileSystemXmlApplicationContext,还是不能在其他的文件总调用main方法?
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from file [D:\Develop\apache-tomcat-5.5.23\bin\WebRoot\WEB-INF\ComplexMailSender.xml]; nested exception is java.io.FileNotFoundException: WebRoot\WEB-INF\ComplexMailSender.xml (系统找不到指定的路径。)
java.io.FileNotFoundException: WebRoot\WEB-INF\ComplexMailSender.xml (系统找不到指定的路径。)调用的文件是:
public class SendMailAction extends MappingDispatchAction { public ActionForward send(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
{
DynaActionForm sendMailForm = (DynaActionForm) form;
AbstractMessageSender ams = new AbstractMessageSender();
ams.setSubject(sendMailForm.getString("title"));
ams.setTo(sendMailForm.getString("to"));
ams.setContent(sendMailForm.getString("content"));
try
{
ComplexMessageSender.main();
}
catch(Exception e)
{
e.printStackTrace();
}
return mapping.findForward("test.jsp");
}
}发送的文件是:
public class ComplexMessageSender extends AbstractMessageSender { public void sendMessage() throws MessagingException
{
sender.send(new MessagePreparator());
}/**
* @param args
*/
public static void main() throws Exception {
// TODO Auto-generated method stub
ApplicationContext ctx = new FileSystemXmlApplicationContext(new String[]{"/WebRoot/WEB-INF/ComplexMailSender.xml"});
ComplexMessageSender sender = (ComplexMessageSender)ctx.getBean("messageSender");
AbstractMessageSender ams = new AbstractMessageSender();
sender.setSubject(ams.getSubject());
sender.setTo(ams.getTo());
System.out.println("-----------发送邮件!---------");
try
{
sender.sendMessage();
}catch (MailException me)
{
me.printStackTrace();
}
System.out.println("-----------发送成功!---------");
}
private class MessagePreparator implements MimeMessagePreparator
{
public void prepare(MimeMessage msg) throws Exception
{
AbstractMessageSender ams = new AbstractMessageSender();
//ApplicationContext ctx = new FileSystemXmlApplicationContext(new String[]{"/WebRoot/WEB-INF/applicationContext.xml"});
//ComplexMessageSender sender = (ComplexMessageSender)ctx.getBean("messageSender"); msg.addFrom(InternetAddress.parse(from));
msg.addRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
msg.setSubject(subject); MimeMultipart ma = new MimeMultipart("alternative");
msg.setContent(ma); BodyPart plainText = new MimeBodyPart();
//plainText.setText("This is the plain text version of the mail.");
plainText.setText(ams.getContent());
ma.addBodyPart(plainText); BodyPart related = new MimeBodyPart();
MimeMultipart mr = new MimeMultipart("related");
related.setContent(mr);
ma.addBodyPart(related); /*BodyPart html = new MimeBodyPart();
html.setContent("<html><head></head><body><h1>This is the HTML version of the mail." +
"</h1><img src=\"cid:001\"></body></html>", "text/html");
mr.addBodyPart(html);*/
BodyPart img = new MimeBodyPart();
img.setHeader("Content-ID", "0001");
img.setDisposition("inline");
img.setDataHandler(new DataHandler(new FileDataSource("./WebRoot/image/girl.jpg")));
mr.addBodyPart(img);
}
}}请原因是什么,是不能用FileSystemXmlApplicationContext,还是不能在其他的文件总调用main方法?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货