Java 是否可以像JNDI一样在tomcat7的context.xml中设置值和访问权限?

Java 是否可以像JNDI一样在tomcat7的context.xml中设置值和访问权限?,java,tomcat,servlets,jakarta-mail,jndi,Java,Tomcat,Servlets,Jakarta Mail,Jndi,我想在context.xml文件中设置一些值,并像在JNDI中一样从Servlet访问这些值: mail.smtp.host=smtp.gmail.com mail.smtp.port=465 我能这样做吗?是的,这是绝对可能的 <Environment name="testEnvEntry" value="Got It" type="java.lang.String" override="false"/> 这与在web.xml中添加的方式类似 您可以阅读环境的

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

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

我能这样做吗?

是的,这是绝对可能的

<Environment name="testEnvEntry" value="Got It"
         type="java.lang.String" override="false"/>
这与在
web.xml
中添加
的方式类似


您可以阅读
环境的官方文档

是的,请参见上文,您可以做得更好:您可以将整个邮件会话放入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/xyz
,它就是一个javax.mail.Session


请注意,如果您提供
password
属性,Tomcat也会为您安装验证器。

为什么要将其放在context.xml中?我只想尝试一下,如果它工作正常的话。另外,我想给war文件,上面的值是可编辑的,所以我希望这会有帮助。你验证了吗?我试过了,但它显示javax.naming.NameNotFoundException:Name TestenCentry没有绑定在这个Context@JigarJohi您在web.xml中有用于TestInventry的条目吗?是的,仅在contex.xml中有条目是不够的,应该为context.testEnvEntry testEnvEntry testEnvEntry java.lang.String注册的env变量希望这有助于希望此链接有助于解释和回答
  <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"
      />