tomcat中的JNDI

字体大小: 中小 标准 ->行高大小: 标准
1.配置JNDI资源;
 
在WebRoot/META-INF下新建一个File:context.xml。context中的内容如下 :
 
<Context>
<Resource name="mail/Dog" 
 auth="Container"
 type="javax.mail.Session"
 mail.smtp.host="smtp.sina.com" 
 mail.smtp.auth="true"
 mail.transport.protocol="smtp" />
</Context>
 
2.将mail.jar拷贝到<tomcat_home>/lib目录下子;
 
没有的话会因为这tomcat下找不到mail.jar而报错。
 
请注意在项目文件夹下将不再需要mail.jar。否则将出现Session对象转换异常错误(因为这样的话,两个Session对象一个来自tomcat中的mail.jar,另一个来自项目文件夹下的mail.jar)。
 
3.在Java程序中使用JNDI API获得mail的Session对象。
 
在项目文件中添加代码如下 :
 
Context initCtx = new InitialContext(); 
   Context envCtx = (Context) initCtx.lookup("java:comp/env"); 
   Session session = (Session) envCtx.lookup("mail/Dog");
 
   System.out.println(envCtx.lookup("mail/Dog").getClass().getClassLoader().getClass().getName());
   System.out.println(Session.class.getClassLoader().getClass().getName());
   
   Message message = new MimeMessage(session); 
   message.setFrom(new InternetAddress("ming_foryou@sina.com")); 
   InternetAddress to[] = new InternetAddress[1]; 
   to[0] = new InternetAddress("ming_foryou@sina.com"); 
   message.setRecipients(Message.RecipientType.TO, to); 
   message.setSubject("ha"); 
   message.setContent("test", "text/plain"); 
//   Transport.send(message);
   Transport ts=session.getTransport();
   ts.connect("smtp.sina.com", "ming_foryou", "********");
   ts.sendMessage(message, to);
   ts.close();

此文章由 http://www.ositren.com 收集整理 ,地址为: http://www.ositren.com/htmls/68789.html