SAR*_*SAR 4 java tomcat servlets jndi jakarta-mail
我想在context.xml文件中设置一些值,并从我的Servlet访问相同的内容,就像我们在JNDI中访问一样:
mail.smtp.host=smtp.gmail.com
mail.smtp.port=465
Run Code Online (Sandbox Code Playgroud)
我可以这样做吗?
是的,绝对可能
<Environment name="testEnvEntry" value="Got It"
type="java.lang.String" override="false"/>
Run Code Online (Sandbox Code Playgroud)
然后访问如下:
Object lookedUp = null;
try {
InitialContext initialContext = new InitialContext();
lookedUp = initialContext.lookup("java:/comp/env/testEnvEntry");
} catch (NamingException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
它类似于你添加<env-entry>的方式web.xml.
你可以在这里阅读官方文档Environment
是的,请参阅上文,您可以做得更好:您可以将整个邮件会话放入context.xml:
<Resource
name="mail/xyz"
type="javax.mail.Session"
auth="Container"
mail.pop3.connectiontimeout="60000"
mail.pop3.host="pop.hhhh.net"
mail.pop3.port="110"
mail.pop3.timeout="60000"
mail.smtp.auth="true"
mail.smtp.connectiontimeout="60000"
mail.smtp.host="smtpout.hhhh.net"
mail.smtp.port="3535"
mail.smtp.sendpartial="true"
mail.smtp.timeout="60000"
mail.store.maildir.autocreatedir="true"
mail.store.protocol="pop3"
mail.transport.protocol="smtp"
mail.from="abc@xyz.com"
mail.user="xyz"
mail.host="xyz.com"
mail.debug="false"
password="xyz"
/>
Run Code Online (Sandbox Code Playgroud)
然后只需查看它java:comp/env/mail/xyz,它就是一个javax.mail.Session.
请注意,如果您提供该password属性,Tomcat也将为您安装Authenticator.
| 归档时间: |
|
| 查看次数: |
857 次 |
| 最近记录: |