ClassCastException (JavaMail API)

Lonsdaleit

Aktives Mitglied
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.

Java:
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
at de.lorenz.asp.email.ExportFromMail.isValid(ExportFromMail.java:124)
at de.lorenz.asp.email.ExportFromMail.perform(ExportFromMail.java:313)
at de.lorenz.asp.transfer.Mandant.work(Mandant.java:291)
at de.lorenz.asp.transfer.Mandant.run(Mandant.java:247)
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
 
Zuletzt bearbeitet:

X5-599

Top Contributor
Also die API sagt folgendes zu getContent():
Return the content as a Java object. The type of this object is dependent on the content itself. For example, the native format of a "text/plain" content is usually a String object. The native format for a "multipart" message is always a Multipart subclass. For content types that are unknown to the DataHandler system, an input stream is returned as the content.

Aber WARUM das jetzt in Eclipse klappt und ohne nicht... keine Ahnung. Wird immer die selbe Mail abgerufen? Sonst könnte es ja am Attachment oder Ähnlichem liegen?
 
Zuletzt bearbeitet:

Lonsdaleit

Aktives Mitglied
Das Problem scheint zu sein, dass er beim Ausführen des Dienstes den Typ aus getContent() als Unbekannt markiert.
Warum dies der Fall ist, während es in Eclipse nicht so ist, gilt zu klären.

Die andere Frage ist, wie übermittel ich in Java den Typ, bzw. mache den Typ sicher bekannt?

Woher weiß ich, ob eine Email multiparts enthält?
Gibt es auch andere Möglichkeiten einer Email Attachments zu übermitteln als via multipart?

Gruß
JP
 

Lonsdaleit

Aktives Mitglied
Mir ist es heute gelungen das Problem zu lösen.
In meinem Fall brauchte ich nur die neuste Version der WinRun4J.exe um den Dienst zu registrieren.
Danach wurde die Class auch im Dienst korrekt erkannt und das Programm lief erfolgreich bis zum Ende durch.

Für diesen kleinen Fehler habe ich nun viele Stunden Arbeit investiert!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P ClassCastException bei Verwendung eines Interfaces Allgemeine Java-Themen 7
G ClassCastException Allgemeine Java-Themen 17
A Vererbung Klassen-Downcasting wirft ClassCastException Allgemeine Java-Themen 2
S OOP ClassCastException bei casting von eigener Klasse aus Iterator Allgemeine Java-Themen 3
F Interpreter-Fehler ClassCastException wird bei Schleifenaufruf geworfen Allgemeine Java-Themen 8
T java.lang.ClassCastException: Allgemeine Java-Themen 4
C java.lang.ClassCastException Allgemeine Java-Themen 3
T java.lang.ClassCastException Allgemeine Java-Themen 7
SuperSeppel13 ClassCastException Allgemeine Java-Themen 6
W java.lang.ClassCastException Allgemeine Java-Themen 10
H setWrappedData -> classcastexception Allgemeine Java-Themen 2
G java.lang.ClassCastException Allgemeine Java-Themen 3
G Dubiose ClassCastException in typisierter Map Allgemeine Java-Themen 4
B ClassCastException Allgemeine Java-Themen 2
V ClassCastException bei ArrayList Allgemeine Java-Themen 5
R ClassCastException Allgemeine Java-Themen 14
S Problem mit generics -> ClassCastException und ka wieso Allgemeine Java-Themen 20
B ClassCastException Allgemeine Java-Themen 17
S classCastException Allgemeine Java-Themen 4
S ClassCastException beim Casten in eine Klasse Allgemeine Java-Themen 7
W JavaMail mit OAuth2 an O365 Allgemeine Java-Themen 2
G javamail Problem beim Empfangen von Nachrichten Allgemeine Java-Themen 3
X Fragen zur Javamail API und Gmail Allgemeine Java-Themen 4
Dann07 Problem mit JavaMail API Allgemeine Java-Themen 26
V JavaMail (die 2.) Allgemeine Java-Themen 5
V Java8 und JavaMail Allgemeine Java-Themen 27
U Javamail Allgemeine Java-Themen 12
OnDemand JavaMail ohne Anhang senden Allgemeine Java-Themen 4
S JavaMail - MailSubject,MailFrom,MailDate in String Array speichern NullPointerException Allgemeine Java-Themen 2
M JavaMail Spam-Ordner Allgemeine Java-Themen 2
J javamail --- UnsupportedDataTypeException Allgemeine Java-Themen 6
N [GWT] JavaMail kommt nicht an Allgemeine Java-Themen 9
T JavaMail: "No provider for imaps" Allgemeine Java-Themen 2
B JavaMail Allgemeine Java-Themen 10
GUI-Programmer JavaMail - Anhang hochladen vor senden der Nachricht Allgemeine Java-Themen 4
F JavaMail - Lokale eMail-Datei einlesen und parsen? Allgemeine Java-Themen 9
K Javamail:Probleme mit der Darstellung von Umlaute in Subject Allgemeine Java-Themen 15
Mike90 JavaMail: Betreff bei POP3 nicht abrufbar Allgemeine Java-Themen 2
hdi JavaMail Lib einbinden? Allgemeine Java-Themen 5
B JavaMail + Bouncy Castle: isEncrypted Allgemeine Java-Themen 3
N Again - JavaMail Allgemeine Java-Themen 4
F Eclipse JAVAMAIL läuft nur unter Eclipste Applet Viewer Allgemeine Java-Themen 4
M Javamail -> andere Möglichkeit für Attachment Allgemeine Java-Themen 5
J JavaMail nur mit JEE? Allgemeine Java-Themen 4
C javamail signatur und verschlüsselung Allgemeine Java-Themen 2
R Javamail Allgemeine Java-Themen 5
V Source zu Javamail? Allgemeine Java-Themen 2
F Umlaute: E-Mail per JavaMail und Textfile Allgemeine Java-Themen 5
G Javamail Nachricht senden: Betreff und Header fehlen Allgemeine Java-Themen 4
G Frage zu JAVAMail Allgemeine Java-Themen 10
T JavaMail versendet Schrott Allgemeine Java-Themen 9
C Probleme mit JavaMail und JAR-File Allgemeine Java-Themen 10
S JavaMail --> HTML-Mail verschicken? Allgemeine Java-Themen 7
J Externe File Emails für JavaMail Allgemeine Java-Themen 4
D JavaMail SMTP Fehlermeldung Allgemeine Java-Themen 2
D JavaMail Fehlermeldung Allgemeine Java-Themen 4
Luma JavaMail, Was versteht sich unter der CDDL Lizenz Allgemeine Java-Themen 6
G JavaMail API Allgemeine Java-Themen 4
S Mit javamail kompiliertes Programm läuft nicht ohne jar's Allgemeine Java-Themen 6
G JavaMail - Message vom Server, wie abfragen? Allgemeine Java-Themen 2
R JavaMail + Lotus Notes Allgemeine Java-Themen 8
S JavaMail: Problem mit SecurityException Allgemeine Java-Themen 2
P Probleme mit javaMail Allgemeine Java-Themen 2
M JavaMail? Allgemeine Java-Themen 3
D JavaMail - Authenticator Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben