Upgrade JSF / Mojarra w JBoss jako / EAP / WildFly

Jak uaktualnić Mojarra na serwerze JBoss i powiedzieć, że używa podanej Mojarra 2.X JARs zamiast JBoss own jboss-jsf-api_2.1_spec-2.0.1.Final.jar jak wskazano w dzienniku startowym?

Jeśli to ma znaczenie, obecnie używam Jbossa jako 7.1.

Author: BalusC, 2013-06-13

1 answers

Poniższa procedura dotyczy JBoss jako 7.2+, JBoss EAP 6.1 + i JBoss WildFly 8 + i zakłada, że masz pełną kontrolę nad instalacją i konfiguracją serwera. Ta aktualizacja rozszerza zakres serwera domyślna wersja JSF:

  • Pobierz pojedyncze pliki Mojarra API i impl (a więc nie pojedynczy plik javax.faces.jar). Aktualne najnowsze 2.1.wersja x to 2.1.29, a aktualna najnowsza 2.2.wersja x to 2.2.14. Let ' s Załóżmy, że chcesz uaktualnić do 2.2.x. można je pobrać indywidualnie z repozytorium Maven:
  • upewnij się, że JBoss jest wyłączony.
  • Update JSF API in /modules/system/layers/base/javax/faces/api/main:
    • Usuń lub utwórz kopię zapasową starego pliku JAR (nie przechowuj go w tym samym folderze, nawet bez nazwy!).
    • włóż tam plik jsf-api-2.2.14.jar.
    • Otwórz module.xml plik i edytuj <resource-root> aby określić nową nazwę pliku jak w <resource-root path="jsf-api-2.2.14.jar"/>
  • Update JSF impl in /modules/system/layers/base/com/sun/jsf-impl/main:
    • Usuń lub utwórz kopię zapasową starego pliku JAR (nie przechowuj go w tym samym folderze, nawet bez nazwy!).
    • włóż tam plik jsf-impl-2.2.14.jar.
    • Otwórz plik module.xml i edytuj <resource-root>, aby określić nową nazwę pliku jak w <resource-root path="jsf-impl-2.2.14.jar"/>
  • Czyszczenie pamięci podręcznej / danych roboczych JBoss tylko po to, aby upewnić się, że nie ma tam starej kopii słoików z poprzednich wdrożeń, które potencjalnie zderzyłyby się tylko z nowym Słoiki:
    • Kosz całą zawartość /standalone/data (z wyjątkiem niestandardowych folderów z danymi, takich jak folder zawierający przesłane pliki, oczywiście)
    • Kosz całą zawartość /standalone/deployments
    • Trash all content of /standalone/tmp
  • Uruchom JBoss. Powinien teraz używać nowej wersji JSF dla wszystkich wdrożeń.

Ta sama procedura dotyczy JBoss jak 7.0/7.1 i JBoss EAP 6.0 , musisz tylko przeglądać w /modules/* zamiast /modules/system/layers/base/*, i musisz jawnie Usuń tam stary plik .index, jeśli taki istnieje (JBoss automatycznie utworzy taki plik). Ponadto, jeśli module.xml w folderze API brakuje <module name="com.sun.jsf-impl"/> wewnątrz <dependencies>, musisz ręcznie dodać go.

Ważna uwaga jest to, że Mojarra 2.2.wersje x starsze niż 2.2.7 nie będą działać w AS / EAP podczas wdrażania z następującym wyjątkiem: org.jboss.weld.context.ContextNotActiveException: WELD-001303 No active contexts for scope type javax.faces.flow.builder.FlowDefinition. Masz wtedy w zasadzie 2 opcje: downgrade do Mojarra 2.1.x lub uaktualnić do co najmniej 2.2.7 lub nowszego.

W przypadku, gdy chcesz uaktualnić do Mojarra 2.3 , który nie oferuje już wariantu 2-JAR na Mavenie, musisz ręcznie utworzyć wariant 2-JAR na podstawie pliku javax.faces.jar zgodnie z tą procedurą: jak zainstalować jeden wariant jar JSF (javax.twarze.jar) na WildFly .

 62
Author: BalusC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:01