Problema
Al actualizar a AEM 6.2 SP1 CFP9, el POI de Granite Apache fallará después de instalar el complemento Formularios.
Más específicamente, los métodos de la clase SXSSFWorkbook pueden fallar con excepciones similares a las siguientes:
Excepción: org.apache.xmlbeans.impl.schema.SchemaTypeImpl no se puede asignar a org.apache.xmlbeans.impl.values.TypeStoreUserFactory java.lang.ClassCastException: org.apache.xmlbeans.impl.schema.SchemaTypeImpl no se puede asignar a org.apache.xmlbeans.impl.values.TypeStoreUserFactory en org.apache.xmlbeans.impl.store.Xobj.setStableType(Xobj.java:1402) en org.apache.xmlbeans.impl.store.Cur.setType(Cur.java:2500) en org.apache.xmlbeans.impl.store.Cur.setType(Cur.java:2485) en org.apache.xmlbeans.impl.store.Locale.newInstance(Locale.java:636) en org.apache.xmlbeans.impl.store.Locale.newInstance(Locale.java:612) en org.apache.xmlbeans.impl.schema.SchemaTypeLoaderBase.newInstance(SchemaTypeLoaderBase.java:198) en org.apache.poi.POIXMLTypeLoader.newInstance(POIXMLTypeLoader.java:112) en org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbook$Factory.newInstance(Unknown Source) en org.apache.poi.xssf.usermodel.XSSFWorkbook.onWorkbookCreate(XSSFWorkbook.java:446) en org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:244) en org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:235) en org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:240) en org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:210) en org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:185) en org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:271) en testpoi.servlets.TestPOIServlet.doGet(TestPOIServlet.java:28) |
El seguimiento de la pila anterior se lanza cuando se ejecuta la siguiente conversión, por ejemplo:
SXSSFWorkbook w = new SXSSFWorkbook(1000); |
Entorno
AEM 6.x con el paquete de formularios instalado
-> AEM 6.2 SP1 con CFP9 entre CFP15 instalado.
-> AEM 6.3
-> AEM 6.4
Causa
El problema se debe a que la biblioteca POI de Apache (com.adobe.granite.poi) está importando algunas clases "org.apache.xmlbeans.impl.*"de un paquete añadido por Forms (Apache ServiceMix:: Bundles:: xmlbeans (org.apache.servicemix.bundles.xmlbeans) y algunas clases están siendo utilizadas desde el propio paquete de PDI.
Ambos paquetes incluyen una versión diferente de "org.apache.xmlbeans.impl.*"Clases: Forma los paquetes de la versión 2.4.0 mientras que los paquetes de granito.poi de la versión 2.0.6 de la misma.
Diferentes versiones de la clase que se está seleccionando dan como resultado la Excepción del reparto.
Resolución
La solución temporal es desinstalar la "Apache ServiceMix:: Bundles:: xmlbeansorg.apache.servicemix.bundles.xmlbeans Versión 2.4.0.5".
Este paquete se utiliza en el conector J2EE y, por lo tanto, puede quitarse con seguridad en caso de que esté usando una instancia de OSGi de AEM Forms.
En caso de que esté utilizando una instancia J2EE de AEM Forms:
En AEM 6.2, se aborda la cuestión a partir de CFP16, y se abordará también en la próxima publicación de AEM 6.5.
Para una corrección en las versiones 6.3 y 6.4, póngase en contacto con el soporte técnico de Adobe, y solicite una corrección para la referencia de fallo CQ-4244778.