Oracle Fusion Middleware Blog

Deutsche Informationen rund um Oracle Fusion Middleware

Webcenter Spaces Customizing – Korrektur der fehlerhaften Darstellung des Site Template Beispiels „PortalCentricTemplates“ im JDeveloper

leave a comment »

Man kann WebCenter Spaces in die gewünschte Form bringen oder funktional erweitern bzw anpassen. Dazu gibt es ein Whitepaper als Anleitung (“Extending WebCenter Spaces”, siehe http://www.oracle.com/technetwork/middleware/webcenter/white-papers-088385.html) inklusive einer dazugehörigen JDeveloper Applikation als Grundgerüst. Will man nun ein eigenes Seitenlayout erstellen, muss man ein “Custom Site Template” entwickeln, welches im Prinzip ein ADF JSF Template ist mit entsprechenden Facettenreferenzen, die von Webcenter Spaces zur Laufzeit gefüllt werden. Man öffnet also im JDeveloper das entsprechende Projekt “CustomSiteTemplate” und schaut sich das darin enthaltene Beispiel (Web Content –> custom –> siteTemplate –> PortalCentricSitetemplate.jspx) einmal an, um die Vorgehensweise zu verstehen und ein eigenes Template laut Anleitung zu erstellen. Doch öffnet man das Beispiel Template, so sieht man im Visual Editor folgendes:

CustomTemplate1

Diese Darstellung ist mitnichten ein Designmodus und zeigt an, dass hier Bibliotheken fehlen oder falsche Referenzen vorliegen. Jedenfalls sieht dies nicht gesund aus und verursacht bei unbedarften Entwicklern oder Anfängern erste Verunsicherungen.

Um der Ursache auf den Grund zu gehen, aktiviert man die Darstellung der Logs des visuellen Editors im Message Fenster. Gehen Sie dazu im JDeveloper Hauptmenü auf Tools –> Preferences –> JSP and HTML Visual Editor. Aktivieren Sie das Häckchen bei “Show Design Time Messages in Log”)

CustomTemplate2

Starten Sie den JDeveloper neu.

Nachdem die JSF im Visual Editor geladen ist, müsste im Message Fenster folgende Meldung erscheinen:

WARNING: No RenderingContext available
WARNING: A problem was encountered executing the page.  Using fallback rendering.
java.lang.NullPointerException
    at oracle.adfinternal.view.faces.context.RichPhaseListener.afterPhase (RichPhaseListener.java:348)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:364)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:205)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)

Nun die Lösung. In der web.xml dieses Projektes muss ein Filter Mapping korrigiert werden. Öffnen Sie die Datei und ersetzen Sie das Filtermapping für Trinidad. Kommentieren Sie die Zeilen 66 bis 77 aus

CustomTemplate4

und fügen Sie darunter folgenden Block ein.

<filter-mapping>
  <filter-name>trinidad</filter-name>
    <servlet-name>Faces Servlet</servlet-name>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>REQUEST</dispatcher>
</filter-mapping>

Speichern Sie die web.xml und führen Sie im Visual Editor der JSP ein Full Refresh (Ctrl. + F10) durch. Nun müsste der Design Modus sauber ausgeführt werden und im Message Fenster dürfte keine neue Meldung mehr erscheinen. Das Template sieht im Visual Editor nun folgendermassen aus:

CustomTemplate5

Lassen Sie sich durch die vereinzelt nicht aufgelösten Tags nicht irritieren. Die entsprechenden Tags Libs sind zur Laufzeit verfügbar. Sie können jetzt Ihr eigenes Template wie ein herkömmliches ADF JSF Template visuell designen.

<DM>

Written by fmtechteam

19/08/2010 um 13:43

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: