|
Portlet Entwicklungsumgebung
Um Portlets effektiv entwickeln zu können hat
man verschieden Optionen. Eine Möglichkeit ist die Verwendung einer
Entwicklungsumgebung wie RAD (Rational Application Developer V6 von
IBM) . Es ist jedoch auch möglich sich auf Basis von Eclipse sich eine
Entwicklungsumgebung für Portlets zu schaffen. Wenn Sie unserer
Anleitung befolgen können Sie sich eine solche Umgebung aufbauen. So
können sie sich an die Entwicklung machen und ihr Portlet ohne viel
Aufwand in ihrer Entwicklunsumgebung debuggen.
Apache Pluto ist die Referenzimplementierung der
Portlet-Spezifikation. Pluto passt hervoragend mit dem Apache Tomcat
zusammen. Wir werden somit auf die Kombination Apache Tomcat mit Pluto
setzten.
An dieser Stelle möchte ich soffort auf das Buch Portlets and Apache Portals
Book hinweisen. Diese Buch gibt einen wirklich Einstiegspunkt in die
Entwicklung. Es wurde von den Herren Geschrieben die auch an der
Entwicklung von Pluto und der Protletspezifikation beteiligt waren.
Fast alle Autoren (6Stk) sind Mitarbeiter der IBM.

Pluto besteht im wesentlichen aus 4 Modulen, die sie Ihrem
Apache Tomcat hinzu fügen müssen. Das erste dieser 4 Module ist die
Spezifikation (portlet-api_2.0_spec-1.0.jar). Hier sind die
Klassen und Interfaces enthalten die alle Portlet-Conformen Server
implementieren müssen. Auch andere Hersteller wie Oracle oder IBM
müssen diese Jar-File ausliefern. Das nächste Modul ist der Container.
Es gibt anderer Portale, die Pluto als Porlet-Container verwenden.
Apache Jetspeed2 ist so einer. Jetspeed liefert somit mindestens 2 der
4 Files aus. Weil ein Portlet-Container von sich aus dumm ist
und sich nicht verwenden läßt wird Pluto mit einem minimalen
Portal ausgeliefert. dem Pluto-Driver
(pluto-container-driver-api-2.0.0.jar).
- portlet-api_2.0_spec-1.0.jar
- pluto-container-api-2.0.0.jar
- pluto-container-driver-api-2.0.0.jar
- pluto-taglib-2.0.0.jar
Um ein bessere Verständnis für die komplette
Portlet-Entwicklung zu bekommen ist es auch praktisch, wenn man die
ein Einblick in die Sourcen bekommt. Deshalb habe ich die Sourcen der
Spezifikation mit einem SVN-Client ausgecheckt.portlet-api_2.0_spec-1.0-src.zip
Sie können unsere fertige Datei gerne verwenden.


Damit sich unser Portlet-Container auch bequem in unserer
Entwicklungsumgebung starten läßt müssen noch 3 Einträge in
der server.xml gemacht werden. In diesem Beispiel sind die Pfade zu
den Anwendungen hart kodiert. Wenn Sie unter MS-Windows entwickeln
lautet der Pfad c:\Programme\pluto-2.0.0\webapps\pluto und nicht
/Applications/pluto-2.0.0/webapps/pluto
<Context docBase="portlet1" path="/portlet1" reloadable="true"
source="org.eclipse.jst.jee.server:portlet1"/>
<Context docBase="/Applications/pluto-2.0.0/webapps/pluto"
path="/pluto" reloadable="true" crossContext="true"/>
<Context docBase="/Applications/pluto-2.0.0/webapps/testsuite"
path="/testsuite" reloadable="true" crossContext="true"/>
<?xml version="1.0" encoding="UTF-8"?>
<tomcat-users>
<role rolename="pluto"/>
<role rolename="tomcat"/>
<role rolename="manager"/>
<user password="pluto" roles="pluto,manager" username="pluto"/>
<user password="tomcat" roles="tomcat,pluto,manager" username="tomcat"/>
</tomcat-users>
Einfache Produktionskonfiguration für Tomcat
Kann man Apache Tomcat als Standalone-WebServer
in Produktion verwenden? Ja - wir glauben schon. Wir wollen nur eine
Möglichkeit aufzeigen wie dies gemacht werden kann. Wir werden eine
möglichst einface Konfiguration erstellen. Da wir verschieden
Domainnamen besitzen und dies verwenden wollen, müssen wir mehrer host-Einträge
definieren. Durch die Definition mehrer Hosteinträge erreichen wir
auch, dass die verschiedenen Applikationen in unterschiedlichen
Logfile loggen.
Möglich:
- mehrer webapps gleichzeitig
Nicht möglich:
<Connector port="80" protocol="HTTP/1.1"
executor="tomcatThreadPool" connectionTimeout="20000"
redirectPort="443" maxPostSize="0"
disableUploadTimeout="false" maxHttpHeaderSize="8192"/>
<Host name="sportanizer.com" appBase="webapps/sportanizer.com"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<alias>localhost</alias>
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="access_sportanizer_log."
suffix=".log"
pattern="%h %l %u %t "%r" %s %b %S %D"
resolveHosts="false"/>
</Host>
Eingebettetes Google Gadget
Dynamische PDF-Generierung
Das PDF-Format hat sich als Format zum
Austausch von Dokumenten druchgesetzt. Meistens werden PDF-Dokumente
zum Download angeboten. Die Inhalte waren bisher immer gleich. Immer
häufiger wird es jedoch notwendig die Inhalte dynamisch zu
erstellen, z.B. um Rechnungen oder Stundenerfassungszettel in Echtzeit
zu generieren. Wir konnten in verschiedenen Projeten Erfahrungen mit
dieser Technik sammeln. Weil Beispiele mehr sagen als 1000 Worte: Aktuelle Nachrichten der Tagesschau
Wie Sie in diesem Beispiel sehen können, enthält das Dokument
die neuesten Nachrichten. Zur Erstellung dieses PDFs haben wir das
Java-Framework iText verwendet.
Dynamische Generierung von Charts
Die Visualisierung von Daten ist eine echte
Herrausforderung.
Dynamische Excel-Generierung
Excel ist ein recht cooles Tool.
RIA-Programmierung mit Flex
Das Internet gewinnt immer mehr an Bedeutung.
Es werden immer
|