有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

SpringJavaMailSender和MS Exchange:java。lang.noclassdeffounderror:com。太阳邮政uti。邮件记录器

我试图从SpringWeb应用程序发送邮件,但在生产中失败,但在UAT中成功。这个SpringWeb应用程序通过端口25部署在Tomcat服务器上,没有身份验证,也没有SSL

错误 java。lang.noclassdeffounderror:com。太阳邮政uti。邮件记录器

重要的

abcd。com是内部域zxc。com是外部域

我正在使用:

弹簧-4.2.6。释放 javax。邮件api-1.5.5 邮件-1.4.1

@Bean
public JavaMailSender getMailSender() {

JavaMailSenderImpl mailSender = new JavaMailSenderImpl();

        // Using PROD.
        mailSender.setHost("smtp.abcd.com");
        mailSender.setPort(25);
        mailSender.setUsername("imsdc@abcd.com");
        mailSender.setPassword("test017");

        Properties javaMailProperties = new Properties();
        javaMailProperties.put("mail.smtp.starttls.enable", "false");
        javaMailProperties.put("mail.smtp.auth", "false"); 
        javaMailProperties.put("mail.transport.protocol", "smtp");
        javaMailProperties.put("mail.debug", "true"); //

        mailSender.setJavaMailProperties(javaMailProperties);

     return mailSender;

}

共 (2) 个答案

  1. # 1 楼答案

    com.sun.mail.util.MailLogger是JavaMail API[1]的一部分,存在于JavaEE(web应用服务器)中

    com.sun.mail.util.MailLogger在Java SE中不存在

    也许,UAT使用JavaEE,因此获得了成功。 生产使用没有JavaMail的Tomcat,因此失败

    解决方案:下载,将JavaMail依赖项添加到您的生产环境[2](将JavaMail jar依赖项放到%CATALINA_HOME%\lib,或者通过Maven pom.xml文件添加JavaMail依赖项)

    [1]http://www.oracle.com/technetwork/java/javamail/index.html [2] https://javaee.github.io/javamail/#Download_JavaMail_Release

  2. # 2 楼答案

    由于某些原因,找不到依赖项(可能是因为它不在JRE环境中)。尝试将此依赖项添加到pom中。xml:

    <dependency>
        <groupId>com.sun.mail</groupId>
        <artifactId>javax.mail</artifactId>
        <version>1.6.0</version>
    </dependency>