JBoss AS 7.x trifft MySQL

Sie intergrieren gerade Ihre Applikation auf den neuen JBoss AS 7.x aber die Verbindung zum Datasource pfuscht! Da müsste etwas getan werden, um das neue “Modular Class loading” von JBoss AS 7.x anzupassen.

Hier wird ein Beispiel gezeigt, wie man JBoss AS 7.x mit Datasource (MySQL) anbinden kann.

  1. MySQL Treiber als Module ins JBoss AS 7.x bringen:
    • Neues Verzeichnis JBOSS_HOME/modules/com/mysql/main anlegen.
    • MySQL Treiber (mysql-connector-java-5.x.xx-bin.jar) dort speichern.
    • Neue Datei module.xml anlegen und zwar mit folgenden Zeilen:
      <?xml version="1.0" encoding="UTF-8"?>
      <module xmlns="urn:jboss:module:1.0" name="com.mysql">
      <resources>
      <resource-root path="mysql-connector-java-5.1.14-bin.jar"/>
      </resources>
      <dependencies>
      <module name="javax.api"/>
      </dependencies>
      </module>
  2. Öffnen Sie die standalone.xml unter JBOSS_HOME/standalone/configuration/ und suchen nach “subsystem xmlns=”urn:jboss:domain:datasources:1.0″”
  3. Datasource anpassen:
    <subsystem xmlns="urn:jboss:domain:datasources:1.0">
    <datasources>
    <datasource jndi-name="java:jboss/datasources/MyAppDS" pool-name="
    MyAppDS” enabled=”true” use-java-context=”true”>
    <connection-url>jdbc:mysql://your.database.server.ip:3306/hm</connection-url>
    <driver>mysql</driver>
    <security>
    <user-name>yourusername</user-name>
    <password>yourpassword</password>
    </security>
    </datasource>
    <drivers>
    <driver name=”mysql” module=”com.mysql“/>
    </drivers>
    </datasources>
    </subsystem>
  4. Der jndi Name von Datasource “java:jboss/datasources/MyAppDS” ist nun im Kontext zur Verfügung.

Wie funktioniert das “Modular Class loading” in JBoss AS 7.x?

Der neue JBoss Applikation Server 7.x ist schon auf den Markt. Im Vergleich zu seinem Vorgänger punktet JBoss AS 7 sich vor allen in Sachen Performance und Flexibilität, dabei spielt das “Modular Class loading” eine wichtigen Rolle.

Stellen Sie sich vor, dass Sie eine Applikation MyApp.ear und die dazugehörte Einstellungdatei MyApp.properties auf JBoss AS 7 depoly wollen. In einer früheren Version k0nnten Sie dies einfach erledigen, indem die zwei Dateien unter deploy-Verzeichnis ablegen. Mit JBoss AS 7 müssten Sie etwas anderes tun wegen des neuen “Modular Class loading”-Konzeptes.

  1. Neues Verzeichnis JBOSS_HOME/modules/myapp/configuration/main anlegen.
  2. MyApp.properties unter JBOSS_HOME/modules/myapp/configuration/main speichern.
  3. Neue Datei module.xml anlegen und zwar mit folgenden Zeilen:
    <?xml version="1.0" encoding="UTF-8"?>
    <module xmlns="urn:jboss:module:1.1" name="myapp.configuration">
    <resources>
    <resource-root path="."/>
    </resources>
    </module>
    Damit haben wir die properties Datei als Module mit dem Namen “myapp.configuration” definiert.
  4. Öffnen Sie die standalone.xml unter JBOSS_HOME/standalone/configuration/ und suchen nach <subsystem xmlns=”urn:jboss:domain:ee:1.0″ />
  5. Ersetzen Sie die Zeile mit folgenden Zeilen:
    <subsystem xmlns="urn:jboss:domain:ee:1.0">
    <global-modules>
    <module name="myapp.configuration" slot="main"/>
    </global-modules>
    </subsystem>

Nun können Sie die properties Datei wie gewöhnt mit ClassLoader auslesen.

Shortcuts in Eclipse

Dank SHORTCUTS werden bestimmte Funktionen bzw. Dienste schnell und mit wenig Aufwand aufgerufen. Außer den weitverbreiteten Abkürzungen wie. z.B. Strg + C/Strg + V, gibt es eine große Vielzahl von Shortcuts, die vom jeweiligen Programm abhängig sind. Des Weiteren möchte ich die relevantesten Shortcuts für IDE Eclipse erwähnen: (more…)

JAVA-Grundlagen und ihre Vorteile

JAVA ist eine objektorientierte Programmiersprache, ihre Eigenschaften lassen sich folgenderweise zusammenfassen:
Java soll eine einfache, objektorientierte, verteilte, interpretierte, robuste, sichere, architekturneutrale, portable, performante, nebenläufige, dynamische Programmiersprache sein
[1]
- so die JAVA-Entwickler. Und tatsächlich wurde ein wesentlicher Teil der eben ernannten Forderungen erfüllt, was JAVA den Erfolg sicherte.[2] Die Einfachheit von JAVA beruht darauf, dass sie im Gegensatz zu C++ simpel ist, da man sich beispielsweise keine Gedanken um die Memory-Verwaltung machen muss. JAVA besteht aus Klassenbibliotheken, die intuitiv angefertigt wurden.
(more…)

Web Services in REST Way

REST steht für „Representational State Transfer“,  ein Softwarearchitekturstil für verteilte Hypermedia Informationssystem.  REST ist erst in der Dissertation von Roy Thomas Fielding im Jahr 2000 geprägt worden.

Die elementaren Randbedingungen von REST:

  • Client-Server Architektur
  • Stateless Request  zwischen Client und Server
  • Cacheable,  es sorgt für mehr Performance und Skalierbarkeit
  • Stufige Struktur
  • Code on Demand (optional)
  • Uniform Interface, die muss folgende Funktionen anbieten:
    • Identifikation von Ressourcen
    • Manipulation auf Ressource durch Repräsentation
    • Self-descriptive Nachrichten
    • Verwendung von Hypermedia

Wenn ein System alle oben genannten Bedingungen erfüllt, dann kann man dies als „RESTful“ bezeichnen. HTTP Protokoll ist ein gutes RESTful  Beispiel, weil es bietet an, umfangreiche Verben wie z.B. GET und PUT, URIs, MIME Type, Request und Response Codes etc.

Unter RESTful Web Service (auch als RESTful Web API) versteht man, dass ein durch HTTP und REST Prinzip implementiertes Web Service. Jede Ressource besitzt ein eindeutiges URI im Web Service und das Web Service unterstützt auch MIME Type (häufig werden JSON, XML oder YAML verwendet) und  bietet HTTP Methoden (POST, GET, PUT und DELETE) an, die die meiste CRUD (Create-Read-Update-Delete) Operationen aus Web Anwendung  abdecken können.

Gängige RESTful Framewoks:

  • Restlet, Jersey und JBoss RESTEasy für Java
  • Zend, CakePHP,Symfony für PHP
  • Ruby Sinatra, Restfulie für Ruby

Fazit:

REST verwendet ausschließlich reife und standardisierte Standards wie HTTP oder URIs, die bereits seit einigen Jahren verfügbar sind. REST macht sich die Ideen des Webs wie Hypertext und einen unbegrenzten, globalen Adressraum zunutze. Damit sind REST basierte Web Services wirkliche Web Services im Gegensatz zu RPC basierter Middleware.

The most recent comments