Home | Unternehmen | Demo | Beratung | Produkte | Projekte

 
Demo und Tutorials

 Unternehmen

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:
  • mehrer SSL-Zertifikate
<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

 
 
© Copyright 2003 - 2010 by nikem GmbH