© Copyright International Business Machines Corporation 2006. Všechna práva vyhrazena. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM® Corp.
Při importu ukázkového portálového projektu nebo vytváření portálového projektu s pomocí průvodce "Nový portálový projekt" z galerie ukázek se objeví varovná zpráva o přerušeném spojení v pohledu Problémy.
V této verzi Rational® Developer, Návrhář portálu podporuje pouze zobrazení v HTML, cHTML a WML. Pokud jste uvedli jiné podporované značkovací jazyky pro stránku nebo štítek v importovaném projektu, zobrazení jazyků je podporováno s pomocí utility Rational Developer, ale nelze je upravit. Tyto značkovací jazyky se nezobrazí v pohledu Vlastnosti.
Pokud uživatel nepřiřadí paletu barev ke stránce, použije se výchozí paleta barev ve WebSphere® Portal 6. Avšak pokud není v Návrháři portálu uvedena paleta barev, použije se místo výchozí palety barev paleta barev předchozí stránky.
V průvodci novým portálovým projektem neznamená, že pokud vyberete verzi portálového serveru, automaticky se aktualizuje cílová běhová komponenta. Verze portálového serveru a nastavení cílové běhové komponenty musí být ručně synchronizováno. Například, musíte vybrat běhovou komponentu WebSphere Portal v6.0 pro verzi portálového serveru 6.0.0.x, a musíte vybrat běhovou komponentu WebSphere Portal v5.1 pro verzi portálového serveru 5.1.0.x. Pokud verze cílové běhové komponenty není synchronizována s verzí portálu, portálový server může být porušený nebo nepoužitelný při implementaci portálového projektu.
Pro WebSphere Portal v6.0: když upravujete soubory JSP typu obsahu CSS jako styles.jsp nebo styles_theme.jspf, s pomocí dialogu Styly, výrazy JSP se mohou zobrazit v dialogu. Tyto výrazy JSP nelze upravit v dialogu, musíte je upravit ve zdrojovém panelu CSS Designer.
Pokud pro portlet JSR168 Faces použijete jakýkoli z následujících nástrojů pro generování klienta služby ve Faces JSP, generovaný kód stránky nebude řádně fungovat na serveru WebSphere Portal 6.0 nebo 5.1. Ovlivněné nástroje zahrnují:
- Pohled Data na stránce
- Java™ Bean (s vyvoláním metody)
- webová služba
- objekt bean relace EJB
- Pohled Paleta
- Java Bean (s vyvoláním metody)
- webová služba
- objekt bean relace EJB
- Vložení dat> z kontextové nabídky návrháře stránek nebo z nabídky Windows
- Java Bean (s vyvoláním metody)
- webová služba
- objekt bean relace EJB
To způsobí nová implementace běhové komponenty portletu JSR168 Faces obsažená v jsf-portletbridge.jar, která se liší od té dřívější.
V nové implementaci nezůstávají objekty bean kódu stránky pro JSP Faces, jsou-li deklarovány jako objekty bean spravované oblastí požadavku, mezi fází akce portletu a fází vykreslení portletu. V generovaném klientském kódu webových služeb se objekt bean kódu stránky používá k uložení výsledků webové služby během fáze akce do mezipaměti. Protože je to v oblasti požadavku, nová instance se vytvoří během fáze vykreslení. Proto se ztratí výsledek uložený do mezipaměti.
Existují dvě možná řešení:
- Umístěte objekt bean do oblasti relace (to se konfiguruje v souboru faces-config.xml). To je jednoduchá změna jednoho řádku v konfiguračním souboru.
- Tohle není tak jednoduché jako #1, ale je to preferovaný způsob implementace klienta služeb v portletech JSR168. Postupuje podle nejlepších cvičení pro programování portletů JSR168 a umožňuje mnohem lepší podporu tlačítka Zpět a vytváření záložek.
- Pokud potřebujete vyvolat webovou službu během fáze akce, například v závislosti na různých cílových stránkách výsledků služby, pak musíte změnit způsob ukládání výsledků do mezipaměti. Namísto použití lokální proměnné v objektu bean kódu stránky použijte buď parametr vykreslení nebo relaci portletu. Použití parametrů vykreslení je preferovaný způsob pro předání informací z fáze akce do fáze vykreslení, přestože podporuje pouze hodnoty řetězce. Pokud je výsledek komplexního typu, musíte místo toho použít relaci portletu.
- Zde je ukázkový úsek kódu pro nastavení hodnot pro vykreslení parametrů z metody akce JSF v objektu bean kódu stránky:
PortletResponse response = (PortletResponse)getFacesContext().getExternalContext().getResponse();
((ActionResponse)response).setRenderParameter("resultValue", resultValue);
- Zde je ukázkový úsek kódu pro nastavení hodnot pro relaci portletu z metody akce JSF v objektu bean kódu stránky:
PortletRequest request = (PortletRequest)getFacesContext().getExternalContext().getRequest();
request.getPortletSession().put("resultValue", resultValue);
- Nebo, pokud vyvolání služby během fáze akce není požadováno, můžete odložit vyvolání služby na metodu getter pro objekt bean výsledku webové služby. V metodě akce JSF umístěte vstupní hodnotu do parametru požadavku na vykreslení, jde-li o řetězec, nebo do relace portletu, jde-li o komplexní typ. Pak ji načtěte z metody getter pro objekt bean výsledku webové služby, takže se může použít pro vyvolání služby.
- Zde je ukázkový úsek kódu pro nastavení vstupní hodnoty v parametru pro vykreslení v metodě akce JSF v objektu bean kódu stránky:
PortletResponse response = (PortletResponse)getFacesContext().getExternalContext().getResponse();
((ActionResponse)response).setRenderParameter("inputValue", inputValue);
- Zde je ukázkový úsek kódu pro načtení vstupní hodnoty v metodě getter pro výsledek:
PortletRequest request = (PortletRequest)getFacesContext().getExternalContext().getRequest();
String inputValue = request.getParameter("inputValue");
- Uvědomte si, že použití parametru vykreslení pro předání informací do fáze vykreslení má další výhodu v lepší podpoře tlačítka Zpět v prohlížeči a v podpoře vytváření záložek.
Při importu portálového projektu můžete obdržet okénko se zprávou: "Následující soubory pracovního prostoru jsou nekonzistentní s editorem. Aktualizujte editor obsahem pracovního prostoru". Klepněte na Ano.
ID aplikace portletu je volitelné podle specifikace JSR 168, ale produkt Rational® Developer nepublikuje portlety bez ID správně. Rational Developer negeneruje portlety bez těchto ID. Je možné, že se vytvoří portlet, když importujete portlet z jiného zdroje. Abyste problém vyřešili, otevřete deskriptor implementace portletů pro projekt a přidejte ID aplikace portletu na kartě zdroje. Například:
<portlet-app xmlns=... version=... xmlns:xsi=... xsi:schemaLocation=... id="ID_ZADEJTE_SEM">
...
</portlet-app>
Pokud je stav serveru detekován jako Zastavený, když je server spuštěn, nejprve se ujistěte, že porty konektoru SOAP/RMI jsou správné a že zabezpečovací pověření WebSphere, která používáte, jsou správná, v editoru serveru. Pokud nejsou správná, pak nebude server nikdy detekován jako Spuštěný. Pokud jsou správná s stav serveru zůstává Zastavený, pak může být problém s koexistencí serveru WebSphere Application Server v6.1 a WebSphere Portal v6.0.
Nejčastějším scénářem je, že máte nainstalován server WebSphere Application Server 6.1 na lokálním počítači a začnete s novým pracovním prostorem. V tomto novém pracovním prostoru se instance serveru WebSphere Application Server 6.1 automaticky vytvoří a inicializuje a to zabrání správné funkci detekce stavu serveru Portal 6.0. To se může také stát, když prostě vytvoříte server WebSphere Application Server v6.1 a pak vytvoříte server Portal 6.0.
Řešením je restartovat produkt Rational se stejným pracovním prostorem. Instance serveruPortal 6.0 by pak měla fungovat správně, dokud nebude server WebSphere Application Server 6.1 inicializován, tj. jeho stav bude prázdný a ne Zastavený či Spuštěný.
Portlety se nezobrazují na stránkách po spuštění nebo implementaci mého portálového projektu na server Portal 6.0. Abyste minimalizovali efekt tohoto problému, použijte implementaci pouze konfigurace, kdykoli je nezbytná úplná implementace.
Pokud problém zaznamenáte, pak se pokuste spustit implementaci pouze konfigurace portálového projektu, bez implementace jakýchkoli portletů. To obvykle umožní portálu vykreslit portlety znovu správně.
Pokud vytváříte novou zprávu obchodního procesu a soubor WSDL je ve stylu Document-Literal, pak se nemusí zobrazit názvy vstupních a výstupních zpráv na druhé stránce průvodce. Stále je můžete vybrat a zobrazit podrobnosti zpráv na pravé straně průvodce. Generovaný kód bude správný, i když se názvy zpráv nezobrazí v průvodci.
Pokud používáte spolupracujícího průvodce k vytvoření zdrojových nebo cílových portletů a projekt portletu JSR 168 obsahuje více typů portletů, například jeden základní portlet a jeden portlet struts, parametr předvolené akce v průvodci může být nesprávný.
V základních portletech a portletech faces by měl být parametr předvolené akce ACTION_NAME_PARAM, ale uživatel může vybrat jinou hodnotu.
V portletech struts musí být parametr akce spf_strutsAction.
Toto jsou výchozí hodnoty pro jedinečný název v kontejnerech stránky úloh:
WebSphere Portal v6.0: ibm.portal.MyTasks
WebSphere Portal v5.1: wps.MyTasksKdyž v návrháři portálu použijete jinou stránku s jiným jedinečným názvem, než jsou níže vypsané, stránka není rozpoznána jako stránka kontejneru úloh v portálu WebSphere Portal po implementaci.
Náhradní řešení: Po implementaci změňte hodnotu parametru TaskPageContainerUniqueName v portletu Moje úlohy s pomocí těchto kroků:
1. Otevřete Administrace > Správa portletů > Portlety
2. Pro portlet Moje úlohy klepněte na tlačítko Konfigurovat portlet
3. Pro parametr TaskPageContainerUniqueName klepněte na Upravit.
4. Změňte hodnotu na nový jedinečný název v návrháři portálu s pomocí těchto hodnot:WebSphere Portal v6.0: ibm.portal.MyTasks
WebSphere Portal v5.1: wps.MyTasks
5. Klepněte na OK.
Pokud byl portálový projekt migrován z pracovního prostoru Rational Developer 6.x do Rational Developer 7.0, může způsobit selhání implementace s chybou NoModuleFileException. Pokud se tak stane, postupujte podle níže uvedené procedury, abyste opravili problém.
- Tato procedura předpokládá, že projekt "wps" EAR byl již generován z neúspěšné operace implementace portálového projektu.
- Otevřete application.xml v nově generovaném projektu wps EAR.
- Ujistěte se, že obsah application.xml vypadá následovně:
<module id="WebModule_1163447032109">
<web>
<web-uri>wps.war</web-uri>
<context-root>wps</context-root>
</web>
</module>
<module id="WebModule_WSRP">
<web>
<web-uri>wps_facade.war</web-uri>
<context-root>/wsrp</context-root>
</web>
</module>
<module id="EjbModule_1">
<ejb>wp.scheduler.ejb.jar</ejb>
</module>
<security-role id="SecurityRole_1">
<description>Everyone in the enterprise.</description>
<role-name>Everyone Role</role-name>
</security-role>
<security-role id="SecurityRole_2">
<description>All Authenticated users in the enterprise.</description>
<role-name>All Role</role-name>
</security-role>
<security-role id="SecurityRole_3">
<description>No users in the enterprise.</description>
<role-name>No Role</role-name>
</security-role>
- Specifičtěji, obsah by měl
- obsahovat definici webového modulu pro wps.war s hodnotou content-root nastavenou na "wps".
- neobsahovat více než jednu definici webového modulu s hodnotou content-root nastavenou na "wps".
- obsahovat definici webového modulu pro wps_facade.war s hodnotou content-root nastavenou na "/wsrp.
- obsahovat definici modulu ejb pro wp.scheduler.ejb.jar.
- obsahovat definice rolí zabezpečení pro "Všeobecnou roli", "Všechny role" a "Žádnou roli".
- Uložte a publikujte znovu.
Kvůli staré verzi jsf-ibm.jar, která byla dodána ve WebSphere Portal 6.0 se některé komponenty JSF řádně nevykreslí v portletech, pokud je režim zaváděče tříd nastaven na PARENT_FIRST ve webovém modulu portletu. To proto, že když je režim zaváděče tříd nastaven na PARENT_FIRST, pak se použije soubor jsf-ibm.jar ve WebSphere Portal 6.0 namísto kopie obsažené ve webovém modulu portletu.
Jsou ovlivněny pouze komponenty v jsf-ibm.jar, které odpovídají uri http://www.ibm.com/jsf/html_extended. Jak portlety Faces IBM tak portlety Faces JSR168 budou ovlivněny.
Režim zaváděče tříd webového modulu portletu bude nastaven na PARENT_FIRST v následujících situacích, proto se musí změnit:
Jako náhradní řešení problému otevřete soubor application.xml v projektu EAR, který obsahuje portálový projekt, a otevřete kartu "Implementace". V sekci "Aplikace" prosím vyhledejte strom zobrazující EAR a projekt portletu. Vyberte projekt portletu a změňte "Režim zaváděče tříd" z "PARENT_FIRST" na "PARENT_LAST". Možná budete muset publikovat aplikaci znovu, aby se změna projevila na cílovém serveru.
- když je portlet implementován s pomocí produktu Rational Developer v7.
- když je portlet nejprve nainstalován na server WebSphere Application Server s pomocí EAR, pak nakonfigurován na WebSphere Portal s pomocí příkazu xmlAccess.
Pokud je portlet nainstalován přímo ve WebSphere Portal s pomocí WAR, buď na stránce administrace WebSphere Portal nebo s pomocí příkazu xmlAccess, pak je režim zaváděče tříd již nastaven na PARENT_LAST. V tomto případě bude portlet fungovat správně bez žádných náhradních řešení.
Když je importován portálový projekt 5.1.0.1 vytvořený s pomocí produktu Rational Developer 6.x s Výměnou projektů do pracovního prostoru Rational Developer 7.0, může dojít k selhání volby "Spustit v testovacím prostředí WebSphere Portal v5.1 Test Environment".
Náhradní řešení: Upravte obsah souboru .portalsettings s pomocí těchto kroků:
1. Otevřete Okno > Otevřít perspektivu > Další... .
2. Vyberte Prostředek a klepněte na OK v dialogu Otevřít perspektivu.
3. Rozbalte portálový projekt v pohledu Navigátor.
4. Vyberte soubor .portalsettings a otevřete jej s pomocí textového editoru.
5. Vložte následující.
<?xml version="1.0" encoding="UTF-8"?>
<portalSettings>
<portal-version version="5.1.0.1"/>
<portlets-ear-project portlets-ear-project-name=""/>
<process-integration mytaskspage-uniquename="wps.MyTasks"/>
</portalSettings>
Schopnost "Vývojář webu (pokročilý) je třeba zapnout pro zobrazení průvodce importem portálu a ukázek portálu a portletu (z galerie ukázek). Abyste schopnost umožnili, přejděte do Nápovědy > Uvítání, v Uvítání klepněte na tlačítko "Povolit role", které je umístěné v rohu obrazovky. Pak vyberte roli "Vývojář webu (pokročilý)", abyste ji zapli. Restartujte průvodce nebo galerii ukázek, aby se změny použily.