• 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();
  • 相关阅读:
    无有和无穷
    算法设计 熄灯问题
    WPF 路由事件总结
    C# params关键字
    WPF 布局总结
    C#结构体和类的区别
    C#装箱和拆箱(值类型和引用类型之间的转换)
    OpenGL中平移、旋转、缩放矩阵堆栈操作
    OpenGL图元的颜色属性
    OpenGL基础图形的绘制
  • 原文地址:https://www.cnblogs.com/mingforyou/p/2262168.html
Copyright © 2020-2023  润新知