Spring JavaMailSender、Tomcat、JNDI
在这个问题上我一直在绞尽脑汁,我已经厌倦了这种黏糊糊的声音 我需要在Tomcat平台上配置一个JavaMail实例。当然,我不想在war文件中硬编码连接参数,所以我一直在尝试建立JNDI配置。但是,我收到一个异常,表明存在类路径问题(由:java.lang.NoClassDefFoundError:javax/mail/Authenticator引起)。这是我的密码:Spring JavaMailSender、Tomcat、JNDI,java,eclipse,tomcat,jakarta-mail,jndi,Java,Eclipse,Tomcat,Jakarta Mail,Jndi,在这个问题上我一直在绞尽脑汁,我已经厌倦了这种黏糊糊的声音 我需要在Tomcat平台上配置一个JavaMail实例。当然,我不想在war文件中硬编码连接参数,所以我一直在尝试建立JNDI配置。但是,我收到一个异常,表明存在类路径问题(由:java.lang.NoClassDefFoundError:javax/mail/Authenticator引起)。这是我的密码: <Resource name="mail/Session" auth="Container"
<Resource name="mail/Session"
auth="Container"
type="javax.mail.Session"
username="jpulcifer@gmail.com"
password="Camp1onelcap"
mail.debug="true"
mail.user="jpulcifer@gmail.com"
mail.password="Camp1onelcap"
mail.transport.protocol="smtp"
mail.smtp.host="smtp.gmail.com"
mail.smtp.auth="false"
mail.smtp.port="465"
mail.smtp.starttls.enable="false"/>
Session mailSession = null;
try {
mailSession = InitialContext.doLookup("java:comp/env/mail/Session");
会话mailSession=null;
试一试{
mailSession=InitialContext.doLookup(“java:comp/env/mail/Session”);
我不知道该怎么做。我已经阅读了一些关于将mail.jar和activation.jar复制到[TOMCAT_HOME]/lib的评论,但这似乎…很尴尬。另外,我不知道如何在开发环境(Eclipse)中做到这一点.有人能给我指出正确的方向吗?我真的被困在这里了;这似乎不是一件困难的事情,但很明显我证明了这一点是错误的。如果你没有将mail.jar放在Tomcat的lib目录中,你把它放在哪里?你应该能够将它放在中。通过声明资源,你是在问此资源的服务器,在本例中是与邮件服务器的连接。提供资源的是服务器,因此JAR应该位于服务器的类路径中,而不是web应用程序(使用单独的类加载器)的类路径中
因此javax.mail.jar应该在TOMCAT-HOME/lib中。它在war文件中。它是一个在Eclipse类路径中解析的maven依赖项。你确定maven依赖项实际上导致它被放在war文件中,而不仅仅是在编译时使用吗?你是否依赖maven或Eclipse来部署war文件?如果u提取war文件并手动部署,是否有效?