Category: Spring

Slides zum Spring Integration Vortrag

Hier können meine Slides zum diesjährigen Vortrag auf dem Herbstcampus betrachtet werden (einfach auf das Bild klicken):

Share

Vortrag auf dem Herbstcampus 2012: Spring Integration

Beim diesjährigen Herbstcampus bin ich wieder mit einem Vortrag dabei: „Moment, ich verbinde! EAI mit Spring Integration“. Freut mich, dass meine Einreichung akzeptiert wurde.

Hier das Abstract:

Mittlere oder größere IT-Projekte beschränken sich selten auf eine isolierte Anwendung. Stattdessen gilt es, verschiedene Applikationen miteinander zu verknüpfen und Daten zwischen diesen auszutauschen. Die grundlegenden Herausforderungen sind dabei die unterschiedliche Daten-Repräsentation und die Implementierung der einzelnen Applikationen, Änderungen in den Applikationen sowie die Unzuverlässigkeit von Netzwerken. Mit den Enterprise Integration-Patterns haben Gregor Hohpe und Bobby Woolf das Fundament für eine Message-basierte Integration verschiedener Systeme geschaffen. Spring Integration ist eine leichtgewichtige Implementierung der Enterprise Integration-Patterns, die ein Messaging für Java-Anwendungen mit nahezu grenzenlosen Anbindungsmöglichkeiten ermöglicht.

Der Vortrag gibt eine praxisnahe Einführung in Spring Integration und zeigt, wie einfach lose gekoppelte Systeme erstellt werden können. Dabei wird auf die wesentlichen Komponenten Message, Message Channel, Message Endpoint, Channel Adapter und Message Router eingegangen.

Share

Zeichensatz festlegen bei generierten E-Mails

Programmierer habens oft eilig. Und sie gehen den Weg des geringsten Widerstands, was einfach geht, wird auch einfach gemacht. Bekanntes Beispiel: das Versenden von E-Mails aus der Applikation heraus, z.B. für Bestätigungsmails, Formularmailer usw.; in nahezu jeder Sprache gibt es dafür einfache Klassen oder Befehle, die eine E-Mail erzeugen und versenden.

Leider wird dabei häufig vergessen, den Zeichensatz der generierten Mail richtig (bzw. überhaupt) zu setzen. Hat eine Mail im Header kein Feld „Content-Type:“ gesetzt, so handelt man sich zwei gravierende Probleme ein:

  1. Der empfangende Client kann die Mail nicht richtig interpretieren, da er nicht weiß, in welcher Codierung der Inhalt der Mail ist. Das hat zur Folge, dass Umlaute, Sonderzeichen usw. nicht richtig angezeigt werden.
  2. viele Spam-Filter werten dies als Negativ-Punkt, somit steigt die Wahrscheinlichkeit, dass die Mail ihren Empfänger nicht erreicht.

Ich schreibe hier mal beispielhaft für PHP, Java, Spring und SEAM, wie man den Header um die Content-Type Angabe ergänzen kann. Dabei beschränke ich mich der Einfachheit halber auf eine simple Textmail, also kein Multipart mit HTML oder Attachment (Beispiele dazu lassen sich schnell im Web finden).

PHP:

$header = 'MIME-Version: 1.0' . "\n" . 'Content-type: text/plain; charset=UTF-8' . "\n" . $strFrom;
mail($strEmpfaenger, $strSubject, $strMailtext, $header) or die("Die Mail konnte nicht versendet werden.");

Java:

MimeMessage message = new MimeMessage(session);
message.setHeader("Content-Type", "text/plain" + "; charset=" + "UTF-8");

Spring:

MimeMessage mimeMessage = ...
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, "UTF-8");

SEAM: (ein Facelet-Template, das vom SEAM gerendert wird)

   ...

Die Beispiele sind bewusst kurz gehalten, das Thema E-Mail-Programmierung kann wohl Bücher füllen. In erster Linie will ich Entwickler motivieren, bei aller Eile auch an die Kleinigkeiten zu denken.

Share