Netter Beitrag auf heise.de zu Integrations-Frameworks: http://www.heise.de/developer/artikel/Freie-...

Netter Beitrag auf heise.de zu Integrations-Frameworks:
http://www.heise.de/developer/artikel/Freie-Integrations-Frameworks-auf-der-Java-Plattform-1666403.html

Freie Integrations-Frameworks auf der Java-Plattform

Trotz der Vielzahl an Techniken, Protokollen und Datenformaten soll deren Integration idealerweise standardisiert modellierbar, effizient umsetzbar und automatisiert testbar sein. Im Java-Umfeld gibt …

This was posted on Google+

Pear, Plesk und PHP

Der Fehler

require_once(): Unable to access Pear.php …
require(Pear.php): failed to open stream: No such file or directory …

oder ähnlich dürfte einigen bekannt sein, die bei einer vorhanden Pear Installation versuchen die Pear Klassen zu verwenden. Der Grund dafür liegt, das Pear nicht standardmässig in der php.ini vorhanden ist. Die Lösung liegt in der folgenden Zeile:

include_path = .:/usr/share/php

Je nach Distribution muss der Path angepasst werden. Damit dies aber für das PHP auf den Webseiten und auf der Console vorhanden ist, muss diese Zeile in den folgenden beiden Konfigurationen hinzugefügt bzw. geändert werden.

/etc/php5/apache2/php.ini
/etc/php5/cli/php.ini

Nach einem Neustart des Apache Servers, kann pear auf allen Webseiten und auf der Console problemlos verwendet werden.

Tomcat + JkMount + Apache + Plesk + Ubuntu

Heute bin ich nun endlich dazu gekommen auf einem ubuntu Webserver mit Plesk einen Tomcat zu installieren und in unter dem Port 80 mit mod_jk verfügbar zu machen. Wichtig dabei ist, das diese Anleitung für Plesk größer 10.0 und ubuntu geschrieben ist. Bei einem anderen Betriebssystem werden vermutlich die Pfade an denen die Konfigurationen vorhanden sind, sowie die Namen der Konfigurationsdateien anders sein. Tomcat installieren Für die Installation eines Tomcats gibt es 2 verschiedene Möglichkeit, entweder es wird die Paket Version (bei Windows exe) oder die Zip Version verwendet. Ich habe mich für die zip Version zum entpacken entschieden, da ich dort eine neue Version verwenden kann und den Ort der Installation selbst entscheiden kann. Für beide Varianten ist eine installierte Java Version Voraussetzung. Unter Ubuntu kann das Paket mit

sudo apt-get install tomcat6

installiert werden. Das folgende ist nur wichtig, falls die Zip Datei anstatt der Paket Version verwendet wird. Die Zip Datei kann unter http://tomcat.apache.org/whichversion.html heruntergeladen werden. Nach dem herunterladen kann die Zip Datei in einen beliebigen Ordner entpackt werden. Um den Tomcat auch als tomcat User starten zu lassen, muss der Tomcat User mit den folgenden Befehlen noch erstellt werden:

groupadd tomcat
useradd -g tomcat -s /usr/sbin/nologin -m -d /home/tomcat tomcat

Ein Login mit dem Benutzer wird nicht möglich sein, was wir aber auch nicht benötigen. Zum Starten des Tomcats müssen wir noch einige Variablen definieren. Ich habe mir dafür das folgende Startscript gebaut. Das Script erfüllt die minimal Anwendung, es gibt im Internet aber ausfürlichere Skripte mit denen dann alle Befehle für den Tomcat verwendet werden können:

export JAVA_HOME=PATH_TO_JAVA
export PATH=$JAVA_HOME/bin:$PATH
export CATALINA_HOME=PATH_TO_TOMCAT
export CATALINA_BASE=PATH_TO_TOMCAT
su -p -s /bin/sh tomcat $CATALINA_HOME/bin/startup.sh

Die Datei kann dann unter start.sh gespeichert werden. Zum Stoppen des Tomcats muss statt startup.sh shutdown.sh am Ende verwendet werden. Mod_JK installieren Fall der mod_jk für Apache noch nicht installiert ist kann dies ebenfalls manuell oder über die Paket Verwaltung statt finden. Da Plesk vorhanden ist und Plesk start in den Apache infiltriert ist, habe ich mich für die Paket Version entschieden. Dies kann mit

apt-get install libapache2-mod-jk

installiert werden. Danach muss über die Plesk Oberfläche geprüft werden ob das Apache Modul “jk” aktiviert ist. Bei Plesk Versionen kleiner 10.0 ist dies noch nicht möglich, dort kann dies im Ordner mods-enabled in etc/apache2/ nach geschaut werden. Ist JK noch nicht aktiv kann versucht werden dies über die Oberfläche oder mit

sudo a2enmod jk

zu aktivieren. Danach kann über /etc/apache/workers.properties die Verbindung zum Tomcat konfiguriert werden. Durch Plesk ist es nicht möglich eine andere Datei zu verwenden da in den automatisch von Plesk generierten Konfigurationen schon alle Werte für JkWorkerFile bis JkLogFile vorhanden sind und ein Überschreiben durch Eintragen der Werte in apache2.conf nicht möglich ist. Das eintragen einer weiteren workers.properties führt zum nicht starten des Tomcats, die anderen Konfigurationsvariablen werden einfach nicht beachtet. Tomcat mit Apache verbinden Da aktuell nur ein Tomcat vorhanden ist, wird auch nur ein Worker benötigt. Daher kann folgendes in die worker.properties eingetragen werden:

worker.list=worker1
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type= ajp13

Damit der Tomcat auf diese Verbindungsdaten reagiert, muss der folgende Eintrag in der server.xml vorgenommen werden (dieser ist evtl. schon vorhanden und evtl. noch kommentiert):

Die Ports können natürlich auf die eigenen Wünsche angepasst werden. Weiterleitung von Apache auf Tomcat bei einer Domain Da Plesk die Konfigurationen für die Domains immer wieder bei Änderungen überschreibt muss eine eigene Konfigurationsdatei mit dem Namen vhost.conf in das conf Verzeichniss der Domain gelegt werden. Dort kann dann z.B. folgendes eingetragen werden:

JkMount /myfirstwebapp worker1

Damit diese Änderung übernommen wird muss noch das folgende Skript von Plesk ausgeführt werden:

/usr/local/psa/admin/sbin/websrvmng -u –vhost-name=namederdomain

Danach muss nur noch der Tomcat gestartet werden und der Apache neugestartet werden dann ist unter http://namederdomain/myfirstwebapp die Anwendung auf dem Tomcat zu erreichen. Zur Sicherheit kann zustätzlich der Port des Tomcats über die Firewall von außen deaktiviert werden, dadurch kann der Tomcat nicht direkt über die Urls aufgerufen werden sondern nur die Anwendungen welche man mit JkMount verfügbar gemacht hat.

HTML5 und CSS3 Support

Mit HTML5 und CSS3 gibt es viele neue Möglichkeiten für die Gestaltung und das Verhalten von Webseiten. Aber nicht alle Browser unterstützen alle neue Möglichkeiten oder die gleichen Befehle. Die Seite http://www.findmebyip.com/litmus/ bietet eine Übersicht, welcher Browser was unterstützt. Dabei werden sogar die IE Versionen 6, 7 und 8 berücksichtigt.

Thymol - Solution for Thymeleaf th:inlcude static pages

Jim Benson hat eine Javascript Bibliothek veröffentlicht, welche es ermöglich einen Thymeleaf Seite mit th:inlucde ohne Webserver anzuschauen. Die Javascript Bibliothek bindet mit der Jquery Get Funktion den Link des th:include Tags ein. Dies ermöglicht es die Seiten statisch mit den th:inlcudes anzuschauen, ohne thymol musste dafür jeder th:inlcude Tag mit Default Inhalt gefüllt werden. Was den großen Nachteil hatte, wurde mit th:include ein Default Header angezogen und in diesem etwas geändert, musste es in jedem Template angepasst werden - falls man die Templates ohne Webanwendung anschauen wollte. Leider funktioniert das ganze im Chrome lokal nicht, da dort in Javascript ein $.get auf Lokale files nicht erlaubt ist. Link zur JS Bibliothek: https://sourceforge.net/u/jjbenson/wiki/thymol/ Aktuell muss bei den Examples noch die Jquery Bibliothek in den JS Ordner eingefügt werden. Link zu Thymeleaf: http://www.thymeleaf.org/