Problem
Beim Upgrade auf AEM 6.2 SP1 CFP9 schlägt das Granite Apache POI nach der Installation des Formulare-Add-ons fehl.
Genauer gesagt, die Methoden aus der Klasse SXSSFWorkbook können mit ähnlichen Ausnahmen wie den folgenden fehlschlagen:
Ausnahme : org.apache.xmlbeans.impl.schema.SchemaTypeImpl kann nicht übertragen werden auf org.apache.xmlbeans.impl.values.TypeStoreUserFactory java.lang.ClassCastException: org.apache.xmlbeans.impl.schema.SchemaTypeImpl kann nicht auf org.apache.xmlbeans.impl übertragen werden.values.TypeStoreUserFactory über org.apache.xmlbeans.impl.store.Xobj.setStableType(Xobj.java:1402) unter org.apache.xmlbeans.impl.store.cur.setType(Cur.java:2500) unter org.apache.xmlbeans.impl.store.cur.setType(Cur.java:2485) unter org.apache.xmlbeans.impl.store.Locale.newInstance(Locale.java:636) unter org.apache.xmlbeans.impl.store.Locale.newInstance(Locale.java:612) unter org.apache.xmlbeans.impl.schema.SchemaTypeLoaderBase.newInstance(SchemaTypeLoaderBase.java:198) unter org.apache.poi.POIXMLTypeLoader.newInstance(POIXMLTypeLoader.java:112) unter org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbook$Factory.newInstance(Unknown Source) unter org.apache.poi.xssf.usermodel.XSSFWorkbook.onWorkbookCreate(XSSFWorkbook.java:446) unter org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:244) at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:235) at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:240) at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:210) at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:185) at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:271) at testpoi.servlets.TestPOIServlet.doGet(TestPOIServlet.java:28) |
Der obige Stacktrace wird z. B. bei der Ausführung der folgenden Typenumwandlung geworfen:
SXSSFWorkbook w = new SXSSFWorkbook(1000); |
Umgebung
AEM 6.x mit installiertem Forms-Paket
-> AEM 6.2 SP1 mit CFP9 zwischen CFP15 installiert.
-> AEM 6.3
-> AEM 6.4
Ursache
Das Problem tritt auf, weil die Apache POI-Bibliothek (com.adobe.granite.poi) einige Klassen importiert „org.apache.xmlbeans.impl.*“ aus einem von Forms hinzugefügten Bundle (Apache ServiceMix ::: Bundles :: xmlbeans (org.apache.servicemix.bundles.xmlbeans) und einige Klassen werden vom POI-Bundle selbst verwendet.
Beide Pakete enthalten verschiedene Versionen von „org.apache.xmlbeans.impl.*“-Klassen: Forms-Pakete Version 2.4.0 und granite.poi-Pakete Version 2.0.6 derselben.
Verschiedene Versionen der ausgewählten Klasse führen zur Typumwandlungsausnahme.
Lösung
Die temporäre Lösung besteht darin, die "Apache ServiceMix :: Bundles :: xmlbeansorg.apache.servicemix.bundles.xmlbeans Version 2.4.0.5" zu deinstallieren.
Dieses Bundle wird im J2EE-Connector verwendet und kann daher sicher entfernt werden, wenn Sie eine OSGi-Instanz von AEM Forms verwenden.
.
Wenn Sie eine J2EE-Instanz von AEM Forms verwenden:
In AEM 6.2 wird das Problem ab CFP16 behandelt und es wird auch in der nächsten Hauptversion von AEM: 6.5 berücksichtigt.
Für eine Fehlerbehebung in den Versionen 6.3 und 6.4 wenden Sie sich bitte an den technischen Support von Adobe und fordern Sie eine Lösung für die Fehlerreferenz CQ-4244778 an.
Bei Ihrem Konto anmelden