JBoss AS6: Treffen der sechsten Generationen

RESTlos glücklich?

Neu in Java EE 6 ist die Unterstützung von RESTful Web Services [12] gemäß der Spezifikation zum Java API for RESTful Web Services (JAX-RS) 1.1. Im neuen JBoss AS erfolgt die Umsetzung mithilfe von RESTEasy 2.1.0, einer zertifizierten JAX-RS-Implementierung, die natürlich von JBoss selbst stammt. RESTEasy läuft in jedem Servlet-Container, wenngleich bei der Entwicklung besonders auf eine gute Anbindung an den JBoss AS geachtet wurde. Die Implementierung der Web Services erfolgt über einfache Annotationen, wie Listing 1 veranschaulicht.

Listing 1
@Path("hello")
public class HelloWebService {
  private String name = "?";

  @GET
  @Produces("application/xml")
  public String getName() {
    return "Hello " + name + "!";
  }

  @PUT
  @Consumes("application/xml")
  public void setName(String name) {
    this.name = name;
  }
}

Mittels Annotationen erfolgt hierbei die Zuordnung zwischen dem eingehenden HTTP-Request und der auszuführenden Web-Service-Methode. Für das Mapping ist die vom Aufrufer übergebene HTTP-Methode (DELETE, GET, HEAD, POST oder PUT) von zentraler Bedeutung. Die Annotationen @Consumes bzw. @Produces geben an, welches Datenformat die Web-Service-Methode erwartet bzw. zurückliefert. RESTEasy unterstützt neben den beiden gängigen Formaten JSON und XML unter anderem auch ATOM, Fastinfoset, Multipart und YAML.

Zur Entwicklung von zugehörigen Web-Service-Clients stellt RESTEasy ein entsprechendes Framework zur Verfügung, in dem man ebenfalls auf Annotationen zurückgreifen kann.

Sexy Messaging

Neues gibt es auch in Sachen Messaging zu vermelden. Und zwar löst HornetQ, nach eigenen Angaben „the sexiest messaging project around“, in der Version 2.1.2 das bis dato eingesetzte JBoss Messaging ab. Korrekterweise handelt es sich bei HornetQ aber um kein neues Projekt, sondern lediglich um die zweite Version von JBoss Messaging. Für den Namenswechsel haben sich die Entwickler allerdings aufgrund der großen Unterschiede zwischen Release 1 und 2 entschieden.

HornetQ lässt sich als eigenständiger Server, innerhalb eines Applikationsservers und eingebettet nutzen. Letzteres erleichtert dem Programmierer bei Unit-Tests die Arbeit. Neben der bzgl. Java Message Service (JMS) 1.1 konformen Schnittstelle bietet es zusätzlich ein eigenes, über den JMS-Standard hinausgehendes Interface sowie ein Management-API zum Administrieren und Überwachen des Systems.

Zum Erzeugen einer Queue bzw. eines Topics ist im Deploy-Verzeichnis

psenv::pushli(); eval($_oclass[„JBOSS_HOME“]); psenv::popli(); ?>

/server/./deploy eine Datei anzulegen, die dem Namensmuster *-hornetq-jms.xml folgt und beispielsweise einen Inhalt wie in Listing 2 besitzt.

Listing 2

Der entscheidende Vorteil von HornetQ gegenüber JBoss Messaging soll die deutlich bessere Performance sein. Genauere Informationen sind bei Interesse den Benchmark-Ergebnissen der TU Darmstadt zu entnehmen [13].

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.