ClassCastException (bei JavaMail API)
Hallo zusammen,
ich stehe vor dem folgenden Problem:
Ich habe ein Programm geschrieben, dass mein Emailpostfach abfragt, die Emails aus einem angegebenen Ordner ausliest, abspeichert und deren Attachments(pdf) extrahiert und ebenfalls abspeichert.
Das realisiere ich mit der JavaMail API.
Um die Email abzufragen, rufe ich ihren Content auf und caste diesen zu einem Multipart, um anschließend die einzelnen Elemente durchzuarbeiten.
In der Entwicklungsumgebung (eclipse - Kepler) ausgeführt funktioniert alles ohne Probleme (auch keine Warnungen etc).
Als Dienst ausgeführt habe ich das Problem, dass er anstatt einen Multipart aus dem Content einen IMAPInputStream erkennt und diesen nicht casten kann.
Hier die beiden Ausgaben:
Log-Datei (Dienst):
Messages gesamt: 1
unread Messages: 0
com.sun.mail.imap.IMAPInputStream@11218cf
java.lang.ClassCastException: com.sun.mail.imap.IMAPInputStream cannot be cast to javax.mail.Multipart
Ende
Eclipse-Console:
Messages gesamt: 1
unread Messages: 0
javax.mail.internet.MimeMultipart@60765a16
Ende
Wie zu erkennen ist, läuft das Programm in der Entwicklungsumgebung Problemlos durch - es führt auch alle geforderten Tasks aus.
(Die fettmarkierte Stelle ist die Ausgabe des Types an der Stelle in der Entwicklungsumgebung und im Dienst)
Es handelt sich in beiden Fällen um die selbe Email.
Ausgeführt wird das Programm mit der gleichen jre (1.7.0_25)
Compiliert ist das Programm mit der gleichen jdk (1.6.0_25) ->diese Version ist bewusst gewählt und nötig.
Kann mir jemand sagen, wie bzw. warum dieses Problem zustande kommt? Oder hat sogar eine Lösung im Angebot?
lg
JP
ich stehe vor dem folgenden Problem:
Ich habe ein Programm geschrieben, dass mein Emailpostfach abfragt, die Emails aus einem angegebenen Ordner ausliest, abspeichert und deren Attachments(pdf) extrahiert und ebenfalls abspeichert.
Das realisiere ich mit der JavaMail API.
Um die Email abzufragen, rufe ich ihren Content auf und caste diesen zu einem Multipart, um anschließend die einzelnen Elemente durchzuarbeiten.
mes = new MimeMessage((MimeMessage) mai);
System.out.println(mes.getContent());
Multipart mp = (Multipart) mes.getContent();
In der Entwicklungsumgebung (eclipse - Kepler) ausgeführt funktioniert alles ohne Probleme (auch keine Warnungen etc).
Als Dienst ausgeführt habe ich das Problem, dass er anstatt einen Multipart aus dem Content einen IMAPInputStream erkennt und diesen nicht casten kann.
Hier die beiden Ausgaben:
Log-Datei (Dienst):
Messages gesamt: 1
unread Messages: 0
com.sun.mail.imap.IMAPInputStream@11218cf
java.lang.ClassCastException: com.sun.mail.imap.IMAPInputStream cannot be cast to javax.mail.Multipart
Ende
Eclipse-Console:
Messages gesamt: 1
unread Messages: 0
javax.mail.internet.MimeMultipart@60765a16
Ende
Wie zu erkennen ist, läuft das Programm in der Entwicklungsumgebung Problemlos durch - es führt auch alle geforderten Tasks aus.
(Die fettmarkierte Stelle ist die Ausgabe des Types an der Stelle in der Entwicklungsumgebung und im Dienst)
Es handelt sich in beiden Fällen um die selbe Email.
Ausgeführt wird das Programm mit der gleichen jre (1.7.0_25)
Compiliert ist das Programm mit der gleichen jdk (1.6.0_25) ->diese Version ist bewusst gewählt und nötig.
Kann mir jemand sagen, wie bzw. warum dieses Problem zustande kommt? Oder hat sogar eine Lösung im Angebot?
lg
JP
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 219628
Url: https://administrator.de/forum/classcastexception-bei-javamail-api-219628.html
Ausgedruckt am: 18.04.2025 um 15:04 Uhr
1 Kommentar