Senden Sie eine Mail an mich, SMTP und Apache Camel
Ich versuche zu schreiben ein Apache Camel route für das senden von E-Mail an mich, basierend auf Teil 4 dieses Tutorials:
https://camel.apache.org/tutorial-example-reportincident.html
from("file://target/subfolder")
.setHeader("subject", constant("new incident reported"))
.convertBodyTo(String.class)
//send the email
.to("smtp://myID@localhost?password=&[email protected]");
Aber ich bin immer dies, und keine E-Mail in meinem Posteingang:
395 [main] DEBUG org.apache.camel.example.reportincident.
ReportIncidentRoutesTest - Routing Rules are:
[EventDrivenConsumerRoute[Endpoint[direct:start] ->
Delegate(Delegate(Pipeline[DeadLetterChannel[Delegate(setHeader(org.apache.
camel.file.name, BeanExpression[bean:org.apache.camel.example.reportincident.
FilenameGenerator@244aeb52 method: generateFilename])),
RecipientList[log:org.apache.camel.DeadLetterChannel?level=error]],
DeadLetterChannel[Delegate(sendTo(Endpoint[velocity:MailBody.vm])),
RecipientList[log:org.apache.camel.DeadLetterChannel?level=error]],
DeadLetterChannel[Delegate(sendTo(Endpoint[file://target/subfolder])),
RecipientList[log:org.apache.camel.DeadLetterChannel?level=error]]]))],
EventDrivenConsumerRoute[Endpoint[file://target/subfolder] ->
Delegate(Delegate(Pipeline[DeadLetterChannel[Delegate(setHeader(To,
myname@mycompany.com)), RecipientList[log:org.apache.camel.DeadLetterChannel?
level=error]], DeadLetterChannel[Delegate(setHeader(subject, new incident
reported)), RecipientList[log:org.apache.camel.DeadLetterChannel?level=error]],
DeadLetterChannel[Delegate(org.apache.camel.processor.
ConvertBodyProcessor@6e79839),
RecipientList[log:org.apache.camel.DeadLetterChannel?level=error]],
DeadLetterChannel[Delegate(sendTo(Endpoint[smtp://myID@localhost?
password=&to=myname@mycompany.com])),
RecipientList[log:org.apache.camel.DeadLetterChannel?level=error]]]))]]
Ich bin mir nicht sicher, warum, oder wie kann ich dieses problem beheben. Ich habe auch zu sein scheinen immer diese Warnungen, wenn ich den test ausführen:
[WARNING] The POM for com.sun.xml.fastinfoset:FastInfoset:jar:1.2.2 is invalid,
transitive dependencies (if any) will not be available,
enable debug logging for more details
[WARNING] The POM for com.sun.xml.bind:jaxb-impl:jar:2.1.7 is invalid,
transitive dependencies (if any) will not be available,
enable debug logging for more details
[WARNING] The POM for com.sun.xml.bind:jaxb-xjc:jar:2.1.7 is invalid,
transitive dependencies (if any) will not be available,
enable debug logging for more details
...
606 [main] WARN org.apache.camel.impl.converter.DefaultTypeConverter -
Overriding type converter from: StaticMethodTypeConverter:
public static java.lang.String org.apache.camel.converter.IOConverter.
toString(javax.xml.transform.Source) throws javax.xml.transform.
TransformerException,java.io.IOException to: InstanceMethodTypeConverter: public
java.lang.String org.apache.camel.converter.jaxp.XmlConverter.toString
(javax.xml.transform.Source) throws javax.xml.transform.TransformerException
Welche Art von Datei sind Sie konsumieren?
Sind Sie mit einer benutzerdefinierten Typ-Konverter?
Die Warnung ist harmlos. Sie können überprüfen, ob es irgendwelche anderen warn-oder Fehlermeldung.
In der Antwort auf die Fragen: (1) Der Dateityp war .vm. (2) ich glaube nicht, dass es irgendwelche custom-Typ-Wandler. (3) ich sehe keine anderen warn-oder Fehlermeldungen.
Versuchen Sie zunächst, das senden einer normalen text-Datei und nicht ein Velocity-template. Vielleicht, Kamel versucht, etwas Magie.
Sind Sie mit einer benutzerdefinierten Typ-Konverter?
Die Warnung ist harmlos. Sie können überprüfen, ob es irgendwelche anderen warn-oder Fehlermeldung.
In der Antwort auf die Fragen: (1) Der Dateityp war .vm. (2) ich glaube nicht, dass es irgendwelche custom-Typ-Wandler. (3) ich sehe keine anderen warn-oder Fehlermeldungen.
Versuchen Sie zunächst, das senden einer normalen text-Datei und nicht ein Velocity-template. Vielleicht, Kamel versucht, etwas Magie.
InformationsquelleAutor La-comadreja | 2014-04-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die DEBUG-und WARN-Nachrichten können einfach ignoriert werden.
Folgende route war für mich mit Camel v2.12.3:
Nach dem Start der route, Sie sollten eine Nachricht sehen, wie
Working on file XXX
im log.Vielleicht nicht die Camel-routing ist das problem, sondern der SMTP-server auf localhost. Versuchen Sie, senden Sie eine E-Mail an Ihren SMTP-server eine andere E-Mail-client und überprüfen Sie, ob Sie erhalten Sie eine E-Mail. Ein Beispiel, wie dies zu tun unter Verwendung einer bash-shell unter MacOS finden hier.
Bitte, überprüfen Sie, ob Ihre SMTP-server auf localhost verwendet den Standard-port. Wenn nicht, fügen Sie den port zur URI, wie
localhost:MY_PORT
. Für SMTP der Standard ist25
für SMTPS dies ist465
. Der aktive port kann überprüft werden, mit telnet wietelnet SERVERNAME 25
.Dem SMTP-server kann nicht das problem sein, aber das Lesen der Dateien. Überprüfen Sie, ob die Dateien in der
target/subfolder
lesbar sind und nicht gesperrt sind, mit dem Kamel, d.h. überprüfen, ob es keinfileName.camelLock
Datei.Schließlich, stellen Sie sicher, dass Ihre route läuft weiter und Stoppt nicht, bevor alle Ihre Dateien gescannt werden, siehe http://camel.apache.org/running-camel-standalone-and-have-it-keep-running.html für weitere Informationen darüber.
Zusammenfassend meine Antwort: fangen Sie klein an, teilen Sie große Strecken in kleinen und testen Sie Sie einzeln.
EDIT:
Der aktuellste source-code von tutorial-Beispiel-reportincident können hier gefunden werden: https://github.com/apache/camel/tree/master/examples/camel-example-reportincident.
Die
log
EIP wurde im Kamel-v2.2 (siehe camel.apache.org/logeip.html). Ich würde empfehlen ein upgrade auf die neueste version 2.12.3.das problem ist, dass ich mich durch ein tutorial geschrieben, in einer älteren version.
Verwenden Sie ein neueres tutorial...?
Das lokale Maven-gebrochen werden kann. Siehe stackoverflow.com/questions/4856307/.... Lösen dieses Problem durch das löschen der entsprechenden fehlgeschlagenen download Artefakt-Verzeichnis in Ihrem lokalen repo.
InformationsquelleAutor Peter Keller