form4 GmbH & Co.KG - Innovative Softwareentwicklung

Alfresco 2.0 auf JBoss AS 4.0.5 unter Portal 2.4.1
SuchenSitemap

Alfresco 2.0 auf JBoss AS 4.0.5 unter Portal 2.4.1

Oliver Meimberg, 10.03.2007

Hier mal ein erster Eindruk: Auf den ersten Blick hat sich nicht viel verändert. Interessanterweise ist das XForms-Framework Chiba in der neue Version integriert. Nicht schlecht… Der Navigation (Baumansicht der Verezeichnisstruktur) klappt jetzt AJAX-mäßig auf und zu (vermutlich Chiba?)

So, jetzt kommt die Herausforderung: Integration von Alfresco 2.0 in JBoss AS 4.0.5 unter Portal 2.4.1 und MySQL. Zunächst also mal in den Alfresco-Foren gestöbert. Die schlechte Nachricht: Es geht nicht. Die gute Nachricht: Es geht doch, wenn man sich etwas Mühe gibt. Die Kernaussage dieses Wiki-Eintrages ist, dass im aktuellen Release einige Issues existieren, die den Betrieb von Alfresco 2.0 unter JBoss Portal 2.4.1 unmöglich machen. Diese Issues sin in aktuellen Revisionen des SVN-Repositories jedoch bereits gefixt, so dass ein manuelles Build eines SVN-Snapshots nötig ist. Es gibt glücklicherweise eine Wiki-Eintrag, der beschreibt, wie das zu bewerkstelligen ist. Na dann wollen wir mal sehen, ich werd das jetzt mal ganz brav step-bystep befolgen…

  1. SVN-Client Installieren (Subclipse beispielsweise)
  2. Das Alfresco-Repository unter svn://svn.alfresco.com/alfresco/HEAD konnektieren und Revision 574 holen (dauert erwartungsgemäß ewig…)
  3. Die Umgebungsvariable JBOSS_HOME auf die JBoss AS Installation setzen
  4. Ant herunterladen und als Standalone installieren. Das ANT-bin-Verzeichnis in die Umgebungsvariable PATH aufnehmen. Umgebungsvariable ANT_HOME setzen.
  5. JAVA_HOME aufs JDK setzen
  6. In dem Verzeichnis root/common des Alfresco-Projektes das Tartget build-jboss ausführen: ant build-jboss. Es entstehen folgende Dateien, die vom build-Script freundlicherweise gleich deployed werden:
    • ${jboss.home}/bin/.hotspot_compiler (was auch immer der macht…)
    • ${jboss.home}/server/default/lib/mysql-connector-java-5.0.3-bin.jar (andere MySQL-Treiber werden entfernt)
    • ${jboss.home}/server/default/deploy/alfresco.war
  7. In der Datei ${jboss.home}/bin/run.bat (bzw. run.sh) folgenden Code zu den JAVA_OPTS hinzufügen:
    -server -XX:MaxPermSize=128m cvx (Siehe auch: Das PermgenSpace-Problem)
  8. Leere Datenbank alfresco in MySQL anlegen:
    create database alfresco;
    grant all privileges on alfresco.* to 'alfresco'@'localhost'
    identified by 'alfresco' with grant option;
    grant all privileges on alfresco.* to 'alfresco'@'localhost.localdomain'
    identified by 'alfresco' with grant option;
  9. Und go!

So, jetzt kommt also der Moment, in dem die Kuh den Schwanz hebt… uuund … läuft! Fast.

Ein Problem gibt es jetzt noch: Nach dem erfolgreichen Einklinken des AlfrescoClientWindow-Portlets bzw. beim Anzeigen desselben erscheint die Fehlermeldung:

Unable to find setter method for attribute acceptCharset in /jsp/browse/browse.jsp.

Ein Blick in diese Dateio zeigt:

Der h-Namespace kommt von MyFaces. Achja, da war ja noch was, die MyFaces-Bibliotheken sollten ohnehin ersetzt werden. Also:

${jboss.home}/server/default/deploy/jbossweb-tomcat55.sar/jsf-libs/myfaces-* löschen und durch aktuelle (1.1.5+) ersetzen. Und? Nee!

Nun kommt im AlfrecoClientWindow:

javax.faces.FacesException: org.apache.jasper.JasperException:
The absolute uri: http://java.sun.com/jsf/html
cannot be resolved in either web.xml or the jar files
deployed with this application

Na toll, was soll das jetzt? Nach einiger Recherche habe ich nun die myfaces-libs in der Version 1.1.1 nach ${jboss.home}/server/default/deploy/jbossweb-tomcat55.sar/jsf-libs kopiert. Nun ist alles super!

13:29:40,531 INFO [org.jboss.system.server.Server] JBoss (MX MicroKernel)
[4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)]
Started in 4m:11s:235ms (hmpf...)