Java 未从Spring控制器发送邮件

Java 未从Spring控制器发送邮件,java,spring,email,servlets,Java,Spring,Email,Servlets,这会在浏览器中引发内部服务器错误,并且不会使用javaxapi发送邮件 而简单的java文件包含以下代码: org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet [servlet-web] in context with path [/xxx] threw exception [Handler processing failed; nested exception i

这会在浏览器中引发内部服务器错误,并且不会使用javaxapi发送邮件

而简单的java文件包含以下代码:


org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [servlet-web] in context with path [/xxx] threw exception [Handler processing failed; nested exception is java.lang.NoClassDefFoundError: javax/mail/MessagingException] with root cause
java.lang.ClassNotFoundException: javax.mail.MessagingException
但如果我把控制器放进去,同样会抛出错误

这是我的控制器代码:

EmailSender emailSender = new EmailSender();
emailSender.setDefaultProperties();
emailSender.sendEmail(EmailSender.USERNAME, EmailSender.PASSWORD, EmailSender.FROM, "vkeerocks@gmail.com", "Test Mail", "<b> Hi there!!! </b>");

你真的读过stacktrace吗?java.lang.ClassNotFoundException:javax.mail.MessaginException非常清楚。将java mail api添加到您的项目中。感谢Deinum,我已经完成了,我将javax.mail.jar放入tomcat lib目录中,它工作了,但它是一个集成了maven的spring angular mvc项目,所以手动放置api有什么需要……请提供任何建议……然后它就不再是pom中的依赖项了。使用maven并不意味着可以自动发现依赖项。确保您已经添加了javax.mail依赖项作为编译时,并且没有在pom.tnks Deinum中提供依赖项,但主要问题是我使用的INtelliJ Idea ie IDE有自己的库,因此一些建议如何更改配置,以便它自动从库中加载依赖项INtelliJ没有任何内容与之相关。它是maven,ide只是一个工具。命令行/构建服务器,而不是您的IDE。如上所述,您正在使用maven将库添加到pom中,并修复Intellij以使用maven依赖项,而不是它自己的库!!!。
@RequestMapping(value = {"register"}, method = {RequestMethod.PUT}, consumes = "application/json", produces = "application/json")
public
@ResponseBody User registerUser(@RequestBody User user, HttpServletResponse response)
{


    if (logger.isDebugEnabled())
    {
        logger.debug("Serving request for registering user: " + user.toString());
    }

    boolean success;
    try
    {

        logger.warn("Registering user : " + user.toString());

        this.userService.insertUser(this.convertUserToUserDto(user));

        EmailSender emailSender = new EmailSender();
        emailSender.setDefaultProperties();
        emailSender.sendEmail(EmailSender.USERNAME, EmailSender.PASSWORD, EmailSender.FROM, "vkeerocks@gmail.com", "Test Mail", "<b> Hi there!!! </b>");

        success = true;

    } catch (Exception e)
    {
        logger.error("While serving the request for registering user :", e);
        success = false;
    }

    return user;

}