ExcelImporter 10.7.3 generates error: java.lang.NoSuchMethodError: org.apache.xmlbeans.XmlOptions.put

0
Hi all,   In my app (version 9.24.29) I have upgraded module ExcelImporter to version 10.7.3. Since then, trying to import an .xlsx-file (via ExcelImporter.StartImportByTemplate) fails due to the following error:   java.lang.NoSuchMethodError: org.apache.xmlbeans.XmlOptions.put(Ljava/lang/Object;)V    at org.apache.poi.xssf.model.SharedStringsTable.<clinit>(SharedStringsTable.java:94)    at org.apache.poi.ooxml.POIXMLFactory.createDocumentPart(POIXMLFactory.java:61)    at org.apache.poi.ooxml.POIXMLDocumentPart.read(POIXMLDocumentPart.java:684)    at org.apache.poi.ooxml.POIXMLDocument.load(POIXMLDocument.java:180)    at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:288)    at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:325)    at excelimporter.reader.readers.ExcelXLSXDataReader$1.<init>(ExcelXLSXDataReader.java:51)    at excelimporter.reader.readers.ExcelXLSXDataReader.parseExcelFile(ExcelXLSXDataReader.java:51)    at excelimporter.reader.readers.ExcelXLSXDataReader.readDataRows(ExcelXLSXDataReader.java:45)    at excelimporter.reader.readers.ExcelReader.importData(ExcelReader.java:364)    at excelimporter.reader.ExcelImporter.startImport(ExcelImporter.java:118)    at excelimporter.actions.StartImportByTemplate.executeAction(StartImportByTemplate.java:54)    at excelimporter.actions.StartImportByTemplate.executeAction(StartImportByTemplate.java:25)    at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:58)    at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.doCall(CoreActionHandlerImpl.scala:71)    at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.call(CoreActionHandlerImpl.scala:48)    at com.mendix.core.actionmanagement.internal.InternalCoreAction.call(InternalCoreAction.java:57)    at com.mendix.basis.actionmanagement.ActionManager.$anonfun$executeSync$2(ActionManager.scala:106)    at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:20)    at com.mendix.basis.actionmanagement.ActionManager.executeSync(ActionManager.scala:105)    at com.mendix.basis.actionmanagement.UserActionCallBuilderImpl.execute(UserActionCallBuilderImpl.scala:59)    at com.mendix.modules.microflowengine.actions.actioncall.ForegroundJavaAction.doExecute(ForegroundJavaAction.scala:35)    at com.mendix.modules.microflowengine.actions.actioncall.ForegroundJavaAction.doExecute(ForegroundJavaAction.scala:11)    at com.mendix.modules.microflowengine.actions.actioncall.JavaAction.execute(JavaAction.scala:38)    at com.mendix.modules.microflowengine.microflow.impl.MicroflowObject.$anonfun$execute$1(MicroflowObject.scala:32)    at scala.Option.flatMap(Option.scala:283)    at com.mendix.modules.microflowengine.microflow.impl.MicroflowObject.execute(MicroflowObject.scala:29)    at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.$anonfun$executeAfterBreakingIfNecessary$2(MicroflowImpl.scala:170)    at scala.Option.flatMap(Option.scala:283)    at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAfterBreakingIfNecessary(MicroflowImpl.scala:170)    at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAction(MicroflowImpl.scala:114)    at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:58)    at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.doCall(CoreActionHandlerImpl.scala:71)    at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.call(CoreActionHandlerImpl.scala:48)    at com.mendix.core.actionmanagement.internal.InternalCoreAction.call(InternalCoreAction.java:57)    at com.mendix.basis.actionmanagement.ActionManager.$anonfun$executeSync$2(ActionManager.scala:106)    at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:20)    at com.mendix.basis.actionmanagement.ActionManager.executeSync(ActionManager.scala:105)    at com.mendix.basis.component.ExecutionCore.doExecuteSync(ExecutionCore.scala:148)    at com.mendix.basis.component.ExecutionCore.doExecuteSync$(ExecutionCore.scala:147)    at com.mendix.basis.component.InternalCore.doExecuteSync(InternalCore.scala:24)    at com.mendix.basis.component.ExecutionCore.executeSync(ExecutionCore.scala:97)    at com.mendix.basis.component.ExecutionCore.executeSync$(ExecutionCore.scala:94)    at com.mendix.basis.component.InternalCore.executeSync(InternalCore.scala:24)    at com.mendix.modules.microflowengine.MicroflowExecuter$.executeSync(MicroflowExecuter.scala:19)    at com.mendix.modules.microflowengine.actions.SubMicroflowAction.execute(SubMicroflowAction.scala:37)    at com.mendix.modules.microflowengine.microflow.impl.MicroflowObject.$anonfun$execute$1(MicroflowObject.scala:32)    at scala.Option.flatMap(Option.scala:283)    at com.mendix.modules.microflowengine.microflow.impl.MicroflowObject.execute(MicroflowObject.scala:29)    at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.$anonfun$executeAfterBreakingIfNecessary$2(MicroflowImpl.scala:170)    at scala.Option.flatMap(Option.scala:283)    at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAfterBreakingIfNecessary(MicroflowImpl.scala:170)    at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAction(MicroflowImpl.scala:114)    at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:58)    at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.doCall(CoreActionHandlerImpl.scala:71)    at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.call(CoreActionHandlerImpl.scala:48)    at com.mendix.core.actionmanagement.internal.InternalCoreAction.call(InternalCoreAction.java:57)    at com.mendix.basis.actionmanagement.ActionManager.$anonfun$executeSync$2(ActionManager.scala:106)    at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:20)    at com.mendix.basis.actionmanagement.ActionManager.executeSync(ActionManager.scala:105)    at com.mendix.basis.actionmanagement.MicroflowCallBuilderImpl.execute(MicroflowCallBuilderImpl.scala:64)    at com.mendix.webui.actions.client.MicroflowRuntimeOperationExecutor.runMicroflow(MicroflowRuntimeOperationExecutor.scala:97)    at com.mendix.webui.actions.client.MicroflowRuntimeOperationExecutor.$anonfun$apply$5(MicroflowRuntimeOperationExecutor.scala:57)    at com.mendix.webui.actions.client.RegularClientAction$Helpers$.$anonfun$liftEither$1(RegularClientAction.scala:30)    at com.mendix.webui.actions.client.RegularClientAction$Helpers$StateHandler.$anonfun$apply$4(RegularClientAction.scala:56)    at com.mendix.webui.requesthandling.helpers.StateHandling.withState(StateHandling.scala:46)    at com.mendix.webui.requesthandling.helpers.StateHandling.withState$(StateHandling.scala:43)    at com.mendix.webui.actions.client.RegularClientAction$Helpers$StateHandler.withState(RegularClientAction.scala:46)    at com.mendix.webui.actions.client.RegularClientAction$Helpers$StateHandler.apply(RegularClientAction.scala:54)    at com.mendix.webui.actions.client.RegularClientAction$Helpers$StateHandler.apply(RegularClientAction.scala:46)    at com.mendix.webui.actions.client.MicroflowRuntimeOperationExecutor.apply(MicroflowRuntimeOperationExecutor.scala:58)    at com.mendix.webui.actions.client.RuntimeOperationAction.$anonfun$apply$1(RuntimeOperationAction.scala:57)    at scala.util.Either.flatMap(Either.scala:352)    at com.mendix.webui.actions.client.RuntimeOperationAction.apply(RuntimeOperationAction.scala:41)    at com.mendix.webui.actions.client.RuntimeOperationAction.apply(RuntimeOperationAction.scala:30)    at com.mendix.webui.actions.client.RegularClientAction$Helpers$.$anonfun$liftEither$1(RegularClientAction.scala:30)    at com.mendix.webui.actions.client.RegularClientAction.$anonfun$execute$3(RegularClientAction.scala:120)    at scala.util.Try$.apply(Try.scala:210)    at com.mendix.webui.actions.client.RegularClientAction.$anonfun$execute$2(RegularClientAction.scala:120)    at com.mendix.webui.actions.client.RegularClientAction.$anonfun$execute$2$adapted(RegularClientAction.scala:118)    at com.mendix.webui.requesthandling.helpers.ContextHandling.$anonfun$inContext$7(ContextHandling.scala:58)    at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)    at com.mendix.basis.actionmanagement.ActionMonitoring$.$anonfun$monitor$1(ActionMonitoring.scala:52)    at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:20)    at com.mendix.basis.actionmanagement.ActionMonitoring$.monitor(ActionMonitoring.scala:52)    at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext(ContextHandling.scala:58)    at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext$(ContextHandling.scala:32)    at com.mendix.webui.actions.client.RegularClientAction.inContext(RegularClientAction.scala:94)    at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext(ContextHandling.scala:29)    at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext$(ContextHandling.scala:21)    at com.mendix.webui.actions.client.RegularClientAction.inContext(RegularClientAction.scala:94)    at com.mendix.webui.actions.client.RegularClientAction.$anonfun$execute$1(RegularClientAction.scala:118)    at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)    at com.mendix.webui.requesthandling.helpers.ProfileHandling.profileRequest(ProfileHandling.scala:14)    at com.mendix.webui.requesthandling.helpers.ProfileHandling.profileRequest$(ProfileHandling.scala:10)    at com.mendix.webui.actions.client.RegularClientAction.profileRequest(RegularClientAction.scala:94)    at com.mendix.webui.actions.client.RegularClientAction.execute(RegularClientAction.scala:115)    at com.mendix.webui.requesthandling.ClientRequestHandler.handleAction(ClientRequestHandler.scala:105)    at com.mendix.webui.requesthandling.ClientRequestHandler.processRequest(ClientRequestHandler.scala:78)    at com.mendix.externalinterface.connector.RequestHandler.doProcessRequest(RequestHandler.java:37)    at com.mendix.external.connector.MxRuntimeConnector.$anonfun$processRequest$1(MxRuntimeConnector.scala:54)    at com.mendix.external.connector.MxRuntimeConnector.$anonfun$processRequest$1$adapted(MxRuntimeConnector.scala:54)    at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:20)    at com.mendix.external.connector.MxRuntimeConnector.processRequest(MxRuntimeConnector.scala:54)    at com.mendix.basis.impl.MxRuntimeImpl.processRequest(MxRuntimeImpl.scala:233)    at com.mendix.m2ee.appcontainer.server.handler.RuntimeServlet.service(RuntimeServlet.scala:40)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:590)    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)    at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)    at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170)    at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)    at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1570)    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1384)    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1543)    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1306)    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)    at org.eclipse.jetty.server.Server.handle(Server.java:563)    at org.eclipse.jetty.server.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1598)    at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:753)    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:501)    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)    at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:421)    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:390)    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:277)    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:199)    at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:969)    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1194)    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1149)    at java.base/java.lang.Thread.run(Thread.java:834)   I have checked the userlib on unique jar-file-versions, and have removed the old ones (of course while checking on usage by other modules).   Module ExcelImporter 10.7.3. uses (amongst others) org.apache.poi.*.jar-files version 4.1.2 and poi.*-jar-files version 5.3.0.   From other Forum-posts I have understood that these poi.*.jar-files might be not necessary anymore and could lead to this error, but also when removing these, the same error still occurs.   So, there seems to be a ExcelImporter-module conflict with the underlying userlib-jar-files.   Any advice is much appreciated!   Regards, René van der Meer
asked
1 answers
0

You're on the right track, this issue is caused by a conflict with Jar files in the userlib folder in your Mendix project. You can use intellij or other java IDE's to help resolve the conflict. The problem is the class above is on the classpath multiple times because of multiple jar files with the same class included. The JRE will evict jar files when there on conflicts on the classpath, and this can sometimes cause issues where a necessary class is evicted when the application starts. My suggestions is to open the file that is spelled out in the stack trace above, and try to find where the class causing the issue is imported. If you hover over the import, in intellij, it will show which jar file the class is coming from. I remove the jar files where the troublesome class is defined one at a time from the userlib, until I get to a point where the class can not be found anymore, then I add back in one jar file, with the most up to date version. The goal should be to get to a point where the troublesome class is only defined once on the classpath.

 

There is also a CLI tool that can be helpful, but I've found it's not totally foolproof, so use it with some caution, and make sure you can always revert. i.e. Ensure you have no uncommited changes so you can always just download a clean copy of the project if things go wrong.

 

https://github.com/cinaq/mendix-userlib-cleaner

 

 

 

image.png

answered