Problem
Nach dem Anwenden des AEM 6.2 SP1-CFP9-Updates (oder höher) beginnt die Volltextindizierung von MS Office-Dokumente mit NoClassDefFoundError-Ausnahmen. Die folgenden Klassen wurden als von diesem Verhalten betroffen gemeldet:
- java.lang.NoClassDefFoundError: org/apache/poi/hslf/usermodel/HSLFSlideShow
- java.lang.NoClassDefFoundError: org/apache/poi/hslf/HSLFSlideShow
- java.lang.NoClassDefFoundError: org/apache/jempbox/xmp/XMPMetadata
Umgebung
AEM 6.2 SP1 CFP9 oder höher
Ursache
AEM 6.2 SP1 CFP9 aktualisiert Granite POI von Version 2.0.6 auf 2.0.22. Das Problem tritt auf, weil sich der Klassenpfad in der neuen Version des Bundles geändert hat.
Lösung
Um dieses Problem zu beheben, laden Sie den Klassenlader hoch von,:
classloader = org.apache.poi.hslf.HSLFSlideShow.class.getClassLoader(); // com.adobe.granite::com.adobe.granite.poi::2.0.6
Zu:
classloader = org.apache.poi.hslf.usermodel.HSLFSlideShow.class.getClassLoader(); // com.adobe.granite::com.adobe.granite.poi::2.0.22
(Machen Sie das Gleiche für Jempbox)