4

我想在 context.xml 文件中设置一些值并从我的 Servlet 中访问它们,就像我们在 JNDI 中访问一样:

mail.smtp.host=smtp.gmail.com
mail.smtp.port=465

我可以这样做吗?

4

2 回答 2

5

是的,见上文,您可以做得更好:您可以将整个邮件会话放入 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"
      />

然后将其查找为java:comp/env/mail/xyzjavax.mail.Session。

请注意,如果您提供该password属性,Tomcat 也会为您安装一个 Authenticator。

于 2012-06-13T09:17:06.713 回答
5

是的,绝对有可能

<Environment name="testEnvEntry" value="Got It"
         type="java.lang.String" override="false"/>

然后像这样访问:

Object lookedUp = null;
try {
    InitialContext initialContext = new InitialContext();
    lookedUp = initialContext.lookup("java:/comp/env/testEnvEntry");
} catch (NamingException e) {
    e.printStackTrace();
}

它类似于您<env-entry>web.xml.

你可以阅读Environment 这里的官方文档

于 2012-06-13T07:37:37.410 回答