Ab Version 6.5.1 von CMS Fiona können mit unserem Portal Manager entfernte Portlets eines WSRP-Producers bereitgestellt werden. Dies geschieht mit Hilfe eines virtuellen Kontext-Pfades, der im Portal Manager angegeben wird. Ein solcher virtueller Kontext-Pfad verweist per URL auf eine WSDL-Datei (WSDL = Web Service Description Language), die beschreibt, wie auf den Service zugegriffen werden kann.
Dadurch, dass entfernte Portlets auf diese Weise eingebunden werden,
verhalten sie sich wie Portlets des Portal Managers und können über
die normale npspm
-Syntax angesprochen werden.
Um WSRP-Portlets bereitzustellen, erweitern Sie bitte das
ProxyPortletContainer
-Bean in der Konfigurationsdatei
webapps/PM/WEB-INF/pm.xml
der betreffenden CMS-Instanz. Fügen
Sie bitte das Property wsrpPathMapping
mit einem Unterelement
value
hinzu. Als Wert des value
-Elements geben Sie
bitte für jeden WSRP-Producer eine Zeile mit dem virtuellen Kontext-Pfad und
der dazugehörenden WSDL-URL an. Beispiel:
/WS-ORA = http://portalstandards.oracle.com/portletapp/portlets?WSDL
Zeigt die URL auf eine WSDL-Datei, die Verweise auf externe Quellen
enthält, die aufgrund von Zugriffsbeschränkungen im Netzwerk (Firewall o.ä.)
nicht erreichbar sind, so laden Sie die WSDL-Datei
herunter und referenzieren Sie sie mit file:///
über ihren
Pfad im lokalen Dateisystem. Beispiel:
/WS-IBM = file:///var/temp/portalserver-ibm.wsdl
Hier ein exemplarischer Ausschnitt aus der Datei pm.xml
:
<bean id="portletContainer" class="com.infopark.pm.portlet.ProxyPortletContainer"> <property name="preferencesStorage"> <bean class="com.infopark.pm.FilesystemPreferencesStorage" /> </property> <property name="cacheManager" ref="cacheManager" /> <property name="wsrpPathMapping"> <value> /WS-ORA = http://portalstandards.oracle.com/portletapp/portlets?WSDL /WS-IBM = file:///var/temp/portalserver-ibm.wsdl </value> </property> <property name="webserviceRefreshInterval" value="0" /> </bean>
Die Änderung der Konfiguration muss durch einen Neustart des Application Servers abgeschlossen werden. Funktioniert die Kommunikation des Portal Managers mit dem Producer, können anschließend die Handles der verfügbaren Remote Portlets mit Hilfe der folgenden URL ermittelt werden:
http://mein.server:8080/PM/debug/
Ein ermitteltes Remote Portlet kann nun analog zu
<npspm includeportlet="/WS-ORA/portletHandle" />
in den Content eingebunden werden, wobei portletHandle
das
Handle des jeweils einzubindenden Portlets ist.
Weitere Propertys
webserviceRefreshInterval
: Aktualisierungsintervall für die Liste
der Remote Portlets (in Sekunden).
Die WSDL-Datei, die den WSRP-Service beschreibt, enthält normalerweise Verweise auf
Schemata oder Namensräume, die auf Webservern im Internet liegen (z.B.
http://www.oasis-open.org/committees/wsrp/specifications/version1/wsrp_v1_bindings.wsdl
,
http://www.w3.org/XML/1998/namespace
). Erlaubt es Ihre eigene
Netzwerkkonfiguration nicht, dass der Portal Manager Verbindungen über
HTTP/HTTPS außerhalb des Intranets oder der DMZ aufbaut, so müssen die Ziele der Verweise
auf andere Art verfügbar gemacht werden, damit der Consumer die vollständige Beschreibung
der entfernten Dienste erhält. Hierfür gibt es die folgenden Möglichkeiten.
Wenn es Ihre Netzwerk-Policy erlaubt, dass der Portal Manager über einen
Proxy-Server Verbindungen ins Internet und zum Producer aufnimmt, können Sie den
Applikationsserver, auf dem der Portal Manager eingesetzt wird, mit der
Java-Option proxyHost
und proxyPort
starten.
Wenn Sie den Trifork-Server verwenden, können Sie diese Optionen in die
Konfigurationsdatei rc.npsd.conf
im bin
-Verzeichnis der
betreffenden CMS-Instanz aufnehmen. Beispiel:
set conf(triforkArgs) [list server start -devel -vmargs=-server\ -vmargs=-Xmx256m -vmargs=-Xms256m\ -vmargs=-XX:MaxPermSize=128m -DproxyHost=mein.server \ -DproxyPort=3128]
Bitte beachten Sie, dass damit allen Applikationen dieses Applikationsservers der Zugriff ins Internet über den Proxy-Server erlaubt wird.
Konfigurieren Sie Ihren Producer so, dass er nur lokale XML-Dateien inkludiert bzw. passen Sie die WSDL-Datei des Producers dahingehend an. Die Referenzen in der WSDL-Datei können dann per Requests an den Producer aufgelöst werden.
Wenn auf der Seite des Producers keine Änderung möglich ist, kann die WSDL-Datei einschließlich aller darin inkludierten XML-Dateien lokal verfügbar gemacht werden. Diese Variante ist am wenigsten flexibel, weil Änderungen beim Producer jedes Mal lokal nachvollzogen werden müssen.
Wählen Sie hierzu bitte über einen Browser die WSDL-URL an und speichern Sie sie lokal
ab. Bearbeiten Sie diese Datei, suchen Sie darin alle import
s zu externen
Webservern, laden Sie diese externen XML-Dateien wieder über den Browser und speichern
Sie sie lokal ab. Wiederholen Sie dies so lange, bis Sie alle externen inkludierten
Dateien lokal abgespeichert haben. Editieren Sie alle gespeicherten Dateien und ändern
Sie alle externen Bezüge so, dass sie jeweils auf die lokalen Kopien verweisen. Legen Sie
alle Dateien im Applikationsserver an einem Ort ab und konfigurieren Sie in der Datei
pm.xml
das wsrpPathMapping
für diesen Producer als lokale
WSDL-Datei.