Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring JavaMailSender、Tomcat、JNDI_Java_Eclipse_Tomcat_Jakarta Mail_Jndi - Fatal编程技术网

Spring JavaMailSender、Tomcat、JNDI

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"

在这个问题上我一直在绞尽脑汁,我已经厌倦了这种黏糊糊的声音

我需要在Tomcat平台上配置一个JavaMail实例。当然,我不想在war文件中硬编码连接参数,所以我一直在尝试建立JNDI配置。但是,我收到一个异常,表明存在类路径问题(由:java.lang.NoClassDefFoundError:javax/mail/Authenticator引起)。这是我的密码:

    <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文件并手动部署,是否有效?