我们有一个发送邮件的Web应用程序.由于某种原因,它的安装已经决定它找不到带有(Session,URLName)参数的SMTPTransport的构造函数.
堆栈跟踪的相关位:
javax.mail.NoSuchProviderException: Provider class does not have a constructor(Session,URLName): protocol=smtp; type=javax.mail.Provider$Type@1dedf78; class=com.sun.mail.smtp.SMTPTransport; vendor=Sun Microsystems,Inc at javax.mail.Session.getService(Session.java:499) at javax.mail.Session.getTransport(Session.java:387) at javax.mail.Session.getTransport(Session.java:347) at javax.mail.Session.getTransport(Session.java:376) at javax.mail.Transport.send(Transport.java:67) at javax.mail.Transport.send(Transport.java:48) ... Caused by: java.lang.NoSuchMethodException: com.sun.mail.smtp.SMTPTransport.<init>(javax.mail.Session,javax.mail.URLName) at java.lang.class.getConstructor0(Class.java:2706) at java.lang.class.getConstructor(Class.java:1657) at javax.mail.Session.getService(Session.java:496) ... 8 more
我们已经检查过SMTPTransport确实存在于类路径中(这并不奇怪,因为我们没有得到ClassNotFoundException),并且它是类路径中该类的唯一副本.它在tomcat / lib中.我们的webapp不包含副本. $JAVA_HOME / jre / lib中没有重复项.
我甚至已经反过来反编译该类以验证它实际上确实有问题的构造函数.
我做了一些谷歌搜索,发现其他人有seen the same error,但没有解决问题.
解决方法
原文地址:https://www.jb51.cc/java/129441.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。