Auch nach der erfolgreichen Aktualisierung des Codes in crx/de wird der neu bereitgestellte, visuelle Code nicht in der AEM-Seite angezeigt. Die Website zeigt immer noch den alten, visuellen Code für einige Veröffentlichungsinstanzen an.
AEM 6.1, 6.2, 6.3
Da der Code für alle Instanzen bereitgestellt wird, besteht das Problem in der Neukompilierung von visuellem Code für bestimmte Instanzen.
Immer wenn eine Entwicklung von Code auf einer AEM-Instanz ausgeführt wird, muss sich der neu bereitgestellte Code aus dem vorhandenen Code zwingen und neu kompilieren, wenn die verknüpfte Seite angefordert wird. Es gibt ein bekanntes Problem mit Sightly[1], das den neu hinzugefügten Code nicht richtig erkennt und daher keine Neukompilierung erzwingt.
[1] https://issues.apache.org/jira/browse/SLING-6612
Die vollständige Lösung für dieses Problem ist in der AEM-Version mit der HTL-Engine-Scripting-Version 1.0.34 verfügbar. In der Zwischenzeit sollten Sie die folgenden Schritte in den Bereitstellungsprozess integrieren, um eine einheitliche Nutzung aller AEM-Instanzen sicherzustellen.
./cq-force-recompilation.sh crx-quickstart/ http://localhost:4526 admin:admin
stopping the org.apache.sling.commons.fsclassloader bundle... deleting file sytem classes cache: /Users/ anearora /Desktop/AEM/6.2/TestServer/ crx -quickstart/launchpad/ felix /bundle305/data/classes ... deleting /var/classes in the JCR... starting the org.apache.sling.commons.fsclassloader bundle...
Die zuvor kompilierten Bibliotheken werden gelöscht und die aktualisierten Bibliotheken werden kompiliert, wenn die zugehörige Seite angefordert wird.
[2] force-recompilation.sh
#!/bin/bash if [[ $# -ne 3 || $1 == "-h" ]]; then echo "Usage: force-recompilation.sh <crx-quickstart-dir> <http://server:port> <user:password>" echo echo "Example arguments: crx-quickstart/ http://localhost:4502 admin:admin" echo echo "This will force a recompilation of all Sling scripts (jsps, java, sightly etc.)." exit fi dir="$1" host="$2" user="$3" if [ ! -d "$dir/../crx-quickstart" ]; then echo "No crx-quickstart directory found." exit fi echo "stopping the org.apache.sling.commons.fsclassloader bundle..." bundle="org.apache.sling.commons.fsclassloader" curl -f -s -S -u $user -F action=stop $host/system/console/bundles/$bundle > /dev/null exitCode=$? if [ $exitCode -ne 0 ]; then echo if [ $exitCode -eq 22 ]; then echo "Invalid admin password." fi echo "aborted."; exit fi cd "$dir" classesDir=`find launchpad/felix -path "*/bundle*/data/classes" -type d` if [ -d "$classesDir" ]; then echo "deleting file sytem classes cache: `pwd`/$classesDir ..." rm -rf "$classesDir" else echo "file system classes cache empty or already cleared" fi echo "deleting /var/classes in the JCR..." curl -f -s -S -u $user -X DELETE $host/var/classes > /dev/null echo "starting the org.apache.sling.commons.fsclassloader bundle..." curl -f -s -S -u $user -F action=start $host/system/console/bundles/$bundle > /dev/null if [ $? -ne 0 ]; then echo echo "aborted, bundle was likely not restarted."; exit fi echo "done."
Bei Ihrem Konto anmelden