Accédez à http://aem-host:port/system/console/bundles et connectez-vous en tant qu'administrateur.
Problème
Les erreurs « Problèmes de compilation non résolus », « Impossible de résoudre un type » ou « Erreurs de compilation » sont visibles lors de l'affichage des pages AEM et dans le fichier error.log.
Par exemple :
31.01.2017 06:50:16.950 *ERROR* [192.150.9.201 [1485805816944] GET /content/geometrixx/en.html HTTP/1.1] org.apache.sling.engine.impl.SlingRequestProcessorImpl service: Uncaught SlingException java.lang.Error: Unresolved compilation problems: com.geometrixx.components.page.basepage.BasePage cannot be resolved to a type com.geometrixx.components.page.basepage.BasePage cannot be resolved to a type at org.apache.jsp.apps.geometrixx.components.page.base_002dpage.base_002dpage_jsp._jspService(base_002dpage_jsp.java:194) at org.apache.sling.scripting.jsp.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
12.02.2018 12:30:52.565 *ERROR* [10.43.32.15 [1518456652560] GET /mnt/overlay/cq/gui/content/coral/common/form/tagfield/picker.html HTTP/1.1] org.apache.sling.engine.impl.SlingRequestProcessorImpl service: Uncaught SlingException org.apache.sling.scripting.java.impl.ServletWrapper$CompilerException: Compilation errors in /libs/cq/gui/components/coral/common/form/tagfield/datasources/children/children.java: Line 72, column 3158 : The method transform(Object) of type new Transformer(){} must override a superclass method at org.apache.sling.scripting.java.impl.ServletWrapper$CompilerException.create(ServletWrapper.java:290)
12.02.2018 12:31:23.006 *ERROR* [10.43.32.15 [1518456683001] GET /mnt/overlay/granite/ui/content/coral/foundation/form/pathfield/picker.html HTTP/1.1] org.apache.sling.engine.impl.SlingRequestProcessorImpl service: Uncaught SlingException org.apache.sling.scripting.java.impl.ServletWrapper$CompilerException: Compilation errors in /libs/granite/ui/components/coral/foundation/form/pathfield/datasources/children/children.java: Line 114, column 4844 : The method evaluate(Object) of type new Predicate(){} must override a superclass method Line 132, column 5667 : The method compare(Resource, Resource) of type new Comparator<Resource>(){} must override a superclass method Line 164, column 6736 : The method transform(Object) of type new Transformer(){} must override a superclass method Line 191, column 7631 : The method evaluate(Object) of type children.FolderPredicate must override a superclass method Line 208, column 8089 : The method evaluate(Object) of type children.HierarchyPredicate must override a superclass method Line 225, column 8553 : The method evaluate(Object) of type children.NoSystemPredicate must override a superclass method Line 242, column 9064 : The method evaluate(Object) of type children.HierarchyNotFilePredicate must override a superclass method Line 282, column 10387 : The method transform(Object) of type new Transformer(){} must override a superclass method at org.apache.sling.scripting.java.impl.ServletWrapper$CompilerException.create(ServletWrapper.java:290)
Cause
Voici quelques causes possibles :
- Lots OSGi manquants.
- Lots OSGi arrêtés.
- Fichiers de classe JSP corrompus compilés
Résolution
Pour résoudre ce problème, suivez les étapes ci-dessous :
A. Vérifiez si les lots sont arrêtés.
-
-
Triez par lot Statut.
-
Vérifiez s'il y a des lots dans l'état Arrêté ou Résolu qui ne devraient pas l'être.
-
Démarrez-les s'ils sont arrêtés. Si vous ne voyez aucun lot arrêté ou ceux qui sont censés être arrêtés, passez à l'étape suivante. Sinon, testez et validez si le problème est résolu.
B. Vérifiez que les classes sont exportées vers le chargeur de classes OSGi.
-
Accédez à http://aem-host:port/system/console/depfinder.
-
Dans le champ de texte, entrez le nom complet de la classe java de l'erreur. Par exemple, dans l'erreur ci-dessus, il s'agit de « com.geometrixx.components.page.basepage.BasePage ».
-
Cliquez sur Rechercher.
-
Si un lot OSGi apparaît comme résultat, la classe est alors exportée. Assurez-vous que le lot est actif. Dans le cas contraire, démarrez le lot et testez-le. Sinon, passez à l'étape suivante.
C. Videz le cache JSP compilé
Puisque la classe java est exportée et est disponible pour le JSP qui a causé l'erreur, alors nous pouvons seulement suspecter que les fichiers de classe JSP compilés sont corrompus.
-
Accéder à http://aem-host:port/system/console/slingjsp.
-
Cliquez sur Recompiler toutes les pages JSP.
-
Vérifiez si le problème est résolu. Sinon, passez à l'étape suivante.
-
Connectez-vous au système de fichiers du serveur.
-
Accédez au sous-répertoire du dossier d'installation d'AEM crx-quickstart/launchpad/felix.
-
Dans ce dossier, recherchez les fichiers _jsp.java. Sous Linux, vous pouvez exécuter la commande ci-dessous à partir du dossier d'installation d'AEM.
find ./crx-quickstart/launchpad/felix -type d -name classes
Vous obtenez un résultat semblable à celui-ci :
./crx-quickstart/launchpad/felix/bundle218/data/classes
-
Dans le résultat, vous pouvez voir que bundle218 est le dossier du org.apache.sling.scripting.jsp, dans votre cas, le dossier a un nombre différent de 218.
-
Supprimez les sous-répertoires sous le répertoire data / classes. Par exemple:
rm -rf ./crx-quickstart/launchpad/felix/bundle218/data/classes/*
-
Ouvrez votre navigateur à http://aem-host:port/system/console/bundles et redémarrez les lots org.apache.sling.scripting.jsp et org.apache.sling.commons.fsclassloader.
-
Maintenant, testez à nouveau et validez pour voir si le problème est résolu.
Si le problème n'est toujours pas résolu après toutes les étapes ci-dessus, contactez le service client AEM.
Adobe
Recevez de l’aide plus rapidement et plus facilement
Nouvel utilisateur ?