Ich erstelle eine Mail-Sitzung innerhalb meines Servlet-Kontexts und verwende dann JNDI, um sie in mein Spring-Framework-Design zu injizieren. So sieht der Kontext aus:
%Vor%Und wo ich es herstelle:
%Vor%und wo ich es in den Spring-Java-Mail-Absender injiziere:
%Vor%Jetzt hier ist die Nachricht, die ich bekomme:
%Vor%Äh, was ???? Warum versucht es es zu konvertieren?
Sie haben wahrscheinlich zwei Kopien, wenn javax.mail.Session
auf Ihrem Klassenpfad steht. Einer stammt wahrscheinlich von den internen Bibliotheken des Anwendungsservers, der andere wird wahrscheinlich in das Verzeichnis lib
Ihrer App gepackt. Die beiden Kopien werden kollidieren, wenn Sie versuchen, sie so zu verwenden.
Entfernen Sie den Eintrag im Verzeichnis lib
Ihrer App und versuchen Sie es erneut.
Dies ist ein Classloading-Problem. Normalerweise liegt das daran, dass sich die Klasse in Ihrem jar in Ihrem Server und in Ihrer Anwendung befindet. In diesem Fall möchten Sie es wahrscheinlich aus Ihrer Anwendung entfernen. Haben Sie etwas wie mail.jar in Ihrem WEB-INF / lib oder EAR?