메일을 보내는 웹 응용 프로그램이 있습니다. 어떤 이유로 세션을 설치하면 (Session, URLName) 인수를 취하는 SMTPTransport의 생성자를 찾을 수 없다고 결정했습니다. 스택 추적의Tomcat이 SMTPTransport (Session, URLName)를 찾을 수없는 이유는 무엇입니까?
관련 비트 :
javax.mail.NoSuchProviderException: Provider class does not have a constructor(Session, URLName): protocol=smtp; [email protected]; 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가 점점하지 않을 때문에, 놀라운 일이 아니다있는) 클래스 패스에 존재하고 있음을 않는 것을 확인했습니다 classpath에있는 해당 클래스의 유일한 사본. 그것은 tomcat/lib에 있습니다. 우리 webapp에는 복제물이 포함되어 있지 않습니다. $ JAVA_HOME/jre/lib에는 복제본이 없습니다. 나는 심지어 사실에 않는다는 것을 확인하기 위해 지금까지 디 컴파일 클래스에 같은 갔어요
는 문제의 생성자가 있습니다.
나는 약간의 인터넷 검색을 수행했으며 seen the same error의 다른 사용자를 발견했지만 문제는 수정되지 않았습니다.