Ich habe diesen Fehler erhalten, als ich versuchte, den folgenden Code auszuführen, um ein javax.mail.Session-Objekt mithilfe einer Tomcat-Kontextdatei zu erhalten .java.lang.ClassCastException: javax.mail.Session kann nicht in javax.mail.Session umgewandelt werden
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
Session session = (javax.mail.Session) envCtx.lookup("mail/session");
Dies ist die Ressourcendeklaration in der Datei context.xml.
<Resource name="mail/Session" auth="Container"
type="javax.mail.Session"
mail.smtp.host="host"
mail.smtp.user="user"
mail.smtp.password="password"
mail.smtp.auth="false"/>
Ich verstehe dies zurückzuführen sein kann ich in meiner Anwendungsserver-Bibliothek (tomcat) Ordner und in meinen Anwendungen Bibliotheksordner die gleiche Bibliothek für die javax.mail.Session mit, ich habe so viele doppelten Bibliotheksdateien beseitigt Aus meinem Ordner der Anwendungsbibliothek (zB mail.jar), den ich sehen kann, habe ich die javax.mail.Session als Teil der Bibliothek, jetzt bin ich an einem Punkt, wo ich immer noch diesen Fehler bekomme und nicht sicher bin, was andere Bibliotheken sein könnten die Quelle dieses Problems, oder ist es ein anderes Problem, das mir nicht bekannt ist?
Was würden die Leute vorschlagen, um die Ursache dieses Problems zu finden?
Danke.
Stellen Sie sicher, dass Sie Tomcat neu starten. Wenn die Ausnahme noch immer ausgelöst wird, haben Sie einen Ort verpasst, an dem sich javax.mail.Session noch befindet. – Henry
Ich kenne die genaue Lösung für Ihr Problem nicht, aber einen weiteren Grund, warum es auftreten könnte (für Sie) - Die javax.mail.Session wird von 2 verschiedenen Klassenladern geladen – serejja
Verwenden Sie Maven? –