Il componente aggiuntivo di Forms AEM 6.2 SP1 CFP9 interrompe l'utilizzo del bundle POI Granite Apache

Problema

Con l'aggiornamento ad AEM 6.2 SP1 CFP9, Granite Apache POI non riesce dopo l'installazione del componente aggiuntivo di Forms.

Più specificamente, i metodi della classe SXSSFWorkbook potrebbero non riuscire, con eccezioni simili alle seguenti:

Exception : org.apache.xmlbeans.impl.schema.SchemaTypeImpl cannot be cast to org.apache.xmlbeans.impl.values.TypeStoreUserFactory java.lang.ClassCastException: org.apache.xmlbeans.impl.schema.SchemaTypeImpl cannot be cast to org.apache.xmlbeans.impl.values.TypeStoreUserFactory at org.apache.xmlbeans.impl.store.Xobj.setStableType(Xobj.java:1402) at org.apache.xmlbeans.impl.store.Cur.setType(Cur.java:2500) at org.apache.xmlbeans.impl.store.Cur.setType(Cur.java:2485) at org.apache.xmlbeans.impl.store.Locale.newInstance(Locale.java:636) at org.apache.xmlbeans.impl.store.Locale.newInstance(Locale.java:612) at org.apache.xmlbeans.impl.schema.SchemaTypeLoaderBase.newInstance(SchemaTypeLoaderBase.java:198) at org.apache.poi.POIXMLTypeLoader.newInstance(POIXMLTypeLoader.java:112) at org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbook$Factory.newInstance(Unknown Source) at org.apache.poi.xssf.usermodel.XSSFWorkbook.onWorkbookCreate(XSSFWorkbook.java:446) at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:244) su org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:235) su org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:240) su org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:210) su org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:185) su org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:271) su testpoi.servlets.TestPOIServlet.doGet(TestPOIServlet.java:28)

La traccia dello stack di cui sopra viene lanciata quando si esegue il seguente cast, per esempio:

SXSSFWorkbook w = new SXSSFWorkbook(1000);

Ambiente

AEM 6.x con il pacchetto Forms installato

-> AEM 6.2 SP1 con CFP9 tra CFP15 installato.

-> AEM 6.3

-> AEM 6.4

Causa

Il problema si verifica perché la libreria POI di Apache (com.adobe.granite.poi) sta importando alcune classi "org.apache.xmlbeans.impl.*" da un bundle aggiunto da Forms (Apache ServiceMix :: Bundles :: xmlbeans (org.apache.servicemix.bundles.xmlbeans) e alcune classi sono usate dal bundle POI stesso.

Entrambi i bundles contengono diverse versioni di "org.apache.xmlbeans.impl.*" classi: pacchetti Forms versione 2.4.0 mentre granite.poi contiene la versione 2.0.6 della stessa.

Diverse versioni della classe selezionata danno come risultato l'eccezione cast.

Risoluzione

La soluzione temporanea è disinstallare "Apache ServiceMix :: Bundles :: xmlbeansorg.apache.servicemix.bundles.xmlbeans Versione 2.4.0.5".

Questo bundle è usato nel connettore J2EE e quindi può essere rimosso in sicurezza se utilizzi un'istanza OSGi di AEM Forms.

 

Se utilizzi un'istanza J2EE di AEM Forms:

Su AEM 6.2, la questione è stata affrontata a partire dalla CFP16 e sarà affrontata anche nella prossima versione importante di AEM: 6.5.

Per una correzione nelle versioni 6.3 e 6.4, contatta il Supporto Tecnico Adobe e richiedi una correzione per il riferimento del bug CQ-4244778.

 Adobe

Ottieni supporto in modo più facile e veloce

Nuovo utente?

Adobe MAX 2024

Adobe MAX
La conferenza sulla creatività

14-16 ottobre Miami Beach e online

Adobe MAX

La conferenza sulla creatività

14-16 ottobre Miami Beach e online

Adobe MAX 2024

Adobe MAX
La conferenza sulla creatività

14-16 ottobre Miami Beach e online

Adobe MAX

La conferenza sulla creatività

14-16 ottobre Miami Beach e online