Error configuring IMAPS connection to Office365 with Email Connector module - IMAPProvider not a subtype

1
I'm having issues setting up the Email Connector module version 2.0.0 in Mendix Studio Pro version 8.18.22. The dependent modules (Encryption, MxModel Reflections, etc) are also added to my project in Studio Pro.   On the configuration page I've created an account and configured the account to authenticate with Microsoft Azure AD OAuth 2.0. I added the 0Auth Provider to connect to outlook.office365.com with the IMAPS protocol on server port 993. In Azure Portal, I registered a new application following the instruction provided by Mendix (https://docs.microsoft.com/en-us/power-apps/developer/data-platform/walkthrough-register-app-azure-active-directory).    When I try to authenticate the account from the configuration page, I am redirected to the Microsoft logon page, where I can enter the password for the account. After signing in, I am redirected back to Mendix, but I get an error page saying "{error":{"code":500,"message":"An unexpected error occurred."}}.   In the console,  I see that the following error is thrown: Error in execution of monitored action '{"name":"Email_Connector.ACT_AuthCodeCallbackGET","type":"Microflow"}' (execution id: c2e598df-4754-4164-86fd-4b4b49339bee, execution type: CUSTOM)   I already tried to solve the issue by removing old .jar files (javax, activation, etc) from the userlib folder. These .jar files are used by other modules in the app, e.g. EmailTemplates and IMAP/POP3. Removing these .jar files did not solve the issue unfortunately. I know I must remove these modules from my app eventually, but for now I want to keep them if possible.     The full stack trace is added below:   java.util.ServiceConfigurationError: jakarta.mail.Provider: com.sun.mail.imap.IMAPProvider not a subtype     at java.base/java.util.ServiceLoader.fail(ServiceLoader.java:588)     at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1236)     at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1264)     at java.base/java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1299)     at java.base/java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1384)     at jakarta.mail.Session.loadProviders(Session.java:964)     at jakarta.mail.Session.<init>(Session.java:254)     at jakarta.mail.Session.getInstance(Session.java:298)     at com.mendix.datahub.connector.email.service.ReceiveEmailStoreProvider.createStore(ReceiveEmailStoreProvider.java:24)     at com.mendix.datahub.connector.email.service.IMailProvider.isConnected(IMailProvider.java:42)     at com.mendix.datahub.connector.email.service.EmailServiceWorker.isConnected(EmailServiceWorker.java:99)     at email_connector.actions.CheckServerConnection.checkIncomingServerConnection(CheckServerConnection.java:86)     at email_connector.actions.CheckServerConnection.executeAction(CheckServerConnection.java:51)     at email_connector.actions.CheckServerConnection.executeAction(CheckServerConnection.java:29)     at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:46)     at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.doCall(CoreActionHandlerImpl.scala:71)     at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.call(CoreActionHandlerImpl.scala:49)     at com.mendix.core.actionmanagement.CoreAction.call(CoreAction.java:54)     at com.mendix.basis.actionmanagement.ActionManagerBase$1.execute(ActionManagerBase.java:147)     at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:26)     at com.mendix.basis.actionmanagement.ActionManagerBase.executeSync(ActionManagerBase.java:152)     at com.mendix.basis.actionmanagement.UserActionCallBuilderImpl.execute(UserActionCallBuilderImpl.scala:30)     at com.mendix.modules.microflowengine.actions.actioncall.JavaAction.execute(JavaAction.scala:56)     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:172)     at scala.Option.flatMap(Option.scala:283)     at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAfterBreakingIfNecessary(MicroflowImpl.scala:172)     at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAction(MicroflowImpl.scala:119)     at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:46)     at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.doCall(CoreActionHandlerImpl.scala:71)     at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.call(CoreActionHandlerImpl.scala:49)     at com.mendix.core.actionmanagement.CoreAction.call(CoreAction.java:54)     at com.mendix.basis.actionmanagement.ActionManagerBase$1.execute(ActionManagerBase.java:147)     at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:26)     at com.mendix.basis.actionmanagement.ActionManagerBase.executeSync(ActionManagerBase.java:152)     at com.mendix.basis.component.InternalCoreBase.executeSync(InternalCoreBase.java:376)     at com.mendix.modules.microflowengine.MicroflowExecuter$.executeSync(MicroflowExecuter.scala:18)     at com.mendix.modules.microflowengine.actions.SubMicroflowAction.execute(SubMicroflowAction.scala:34)     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:172)     at scala.Option.flatMap(Option.scala:283)     at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAfterBreakingIfNecessary(MicroflowImpl.scala:172)     at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAction(MicroflowImpl.scala:119)     at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:46)     at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.doCall(CoreActionHandlerImpl.scala:71)     at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.call(CoreActionHandlerImpl.scala:49)     at com.mendix.core.actionmanagement.CoreAction.call(CoreAction.java:54)     at com.mendix.basis.actionmanagement.DefaultActionMonitor$.$anonfun$run$1(CustomMonitoredAction.scala:18)     at com.mendix.basis.actionmanagement.IMonitoredAction$$anon$1.execute(IMonitoredAction.scala:47)     at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:26)     at com.mendix.basis.actionmanagement.IMonitoredAction.monitor(IMonitoredAction.scala:49)     at com.mendix.basis.actionmanagement.IMonitoredAction.monitor$(IMonitoredAction.scala:25)     at com.mendix.basis.actionmanagement.CustomMonitoredAction.monitor(CustomMonitoredAction.scala:22)     at com.mendix.basis.actionmanagement.DefaultActionMonitor$.run(CustomMonitoredAction.scala:18)     at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.runMonitoredAction(CoreActionHandlerImpl.scala:60)     at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.call(CoreActionHandlerImpl.scala:47)     at com.mendix.core.actionmanagement.CoreAction.call(CoreAction.java:54)     at com.mendix.basis.actionmanagement.ActionManagerBase$1.execute(ActionManagerBase.java:147)     at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:26)     at com.mendix.basis.actionmanagement.ActionManagerBase.executeSync(ActionManagerBase.java:152)     at com.mendix.basis.actionmanagement.MicroflowCallBuilderImpl.execute(MicroflowCallBuilderImpl.scala:40)     at com.mendix.integration.internal.InternalIntegration.executeMicroflow(InternalIntegration.scala:77)     at com.mendix.integration.internal.InternalIntegration.executeMicroflow$(InternalIntegration.scala:65)     at com.mendix.integration.internal.InternalIntegrationImpl.executeMicroflow(InternalIntegrationImpl.scala:32)     at com.mendix.integration.service.rest.RestOperationProcessors.$anonfun$executeMicroflow$1(RestOperationProcessors.scala:228)     at scala.util.Try$.apply(Try.scala:210)     at com.mendix.integration.service.rest.RestOperationProcessors.executeMicroflow(RestOperationProcessors.scala:225)     at com.mendix.integration.service.rest.RestOperationProcessors.$anonfun$getMicroflowResult$1(RestOperationProcessors.scala:197)     at scala.util.Success.flatMap(Try.scala:258)     at com.mendix.integration.service.rest.RestOperationProcessors.getMicroflowResult(RestOperationProcessors.scala:197)     at com.mendix.integration.service.rest.RestOperationProcessors.$anonfun$operationResponse$5(RestOperationProcessors.scala:129)     at com.mendix.basis.actionmanagement.IMonitoredAction$$anon$1.execute(IMonitoredAction.scala:47)     at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:26)     at com.mendix.basis.actionmanagement.IMonitoredAction.monitor(IMonitoredAction.scala:49)     at com.mendix.basis.actionmanagement.IMonitoredAction.monitor$(IMonitoredAction.scala:25)     at com.mendix.integration.service.ServiceMonitoredAction.monitor(ServiceMonitoredAction.scala:7)     at com.mendix.integration.service.rest.RestOperationProcessors.$anonfun$operationResponse$4(RestOperationProcessors.scala:127)     at com.mendix.integration.service.rest.RestOperationProcessors.withSystemContext(RestOperationProcessors.scala:135)     at com.mendix.integration.service.rest.RestOperationProcessors.$anonfun$operationResponse$2(RestOperationProcessors.scala:121)     at com.mendix.integration.service.rest.RestOperationProcessors.operationResponse(RestOperationProcessors.scala:125)     at com.mendix.integration.service.rest.RestOperationProcessors.processOperations(RestOperationProcessors.scala:85)     at com.mendix.integration.service.rest.RestOperationProcessors.$anonfun$createProcessor$1(RestOperationProcessors.scala:62)     at com.mendix.integration.service.PathProcessors.$anonfun$process$3(PathProcessors.scala:31)     at scala.Option.fold(Option.scala:263)     at com.mendix.integration.service.PathProcessors.$anonfun$process$1(PathProcessors.scala:31)     at scala.collection.Iterator$$anon$10.nextCur(Iterator.scala:594)     at scala.collection.Iterator$$anon$10.hasNext(Iterator.scala:608)     at scala.collection.Iterator.isEmpty(Iterator.scala:466)     at scala.collection.Iterator.isEmpty$(Iterator.scala:466)     at scala.collection.AbstractIterator.isEmpty(Iterator.scala:1300)     at com.mendix.integration.util.IteratorUtil$RichIterator$.headOption$extension(IteratorUtil.scala:42)     at com.mendix.integration.util.IteratorUtil$RichIterable$.firstDefined$extension(IteratorUtil.scala:29)     at com.mendix.integration.service.PathProcessors.process(PathProcessors.scala:28)     at com.mendix.integration.service.PathProcessors.process$(PathProcessors.scala:27)     at com.mendix.integration.service.rest.RestOperationProcessors.process(RestOperationProcessors.scala:40)     at com.mendix.integration.requesthandlers.RestRequestHandler.$anonfun$processRequest$1(RestRequestHandler.scala:36)     at scala.collection.Iterator$$anon$10.nextCur(Iterator.scala:594)     at scala.collection.Iterator$$anon$10.hasNext(Iterator.scala:608)     at scala.collection.Iterator.isEmpty(Iterator.scala:466)     at scala.collection.Iterator.isEmpty$(Iterator.scala:466)     at scala.collection.AbstractIterator.isEmpty(Iterator.scala:1300)     at com.mendix.integration.util.IteratorUtil$RichIterator$.headOption$extension(IteratorUtil.scala:42)     at com.mendix.integration.util.IteratorUtil$RichIterable$.firstDefined$extension(IteratorUtil.scala:29)     at com.mendix.integration.requesthandlers.RestRequestHandler.processRequest(RestRequestHandler.scala:36)     at com.mendix.externalinterface.connector.RequestHandler.doProcessRequest(RequestHandler.java:46)     at com.mendix.external.connector.MxRuntimeConnector$1.execute(MxRuntimeConnector.java:76)     at com.mendix.external.connector.MxRuntimeConnector$1.execute(MxRuntimeConnector.java:73)     at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:26)     at com.mendix.external.connector.MxRuntimeConnector.processRequest(MxRuntimeConnector.java:79)     at com.mendix.basis.impl.MxRuntimeImplBase.processRequest(MxRuntimeImplBase.java:857)     at com.mendix.m2ee.appcontainer.server.handler.RuntimeServlet.service(RuntimeServlet.java:42)     at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)     at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)     at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1656)     at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:292)     at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)     at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)     at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:552)     at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)     at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)     at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)     at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440)     at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)     at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505)     at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)     at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)     at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355)     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)     at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)     at org.eclipse.jetty.server.Server.handle(Server.java:516)     at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487)     at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732)     at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479)     at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)     at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)     at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)     at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)     at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)     at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)     at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)     at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)     at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)     at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)     at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)     at java.base/java.lang.Thread.run(Thread.java:834)  
asked
1 answers
1

Refer documentation

 

Before you use the Email connector in your app, do the following:

  1. Download and configure the latest version of Mx Model Reflection module. If you have the module already, ensure that it is up-to-date.
  2. Download and configure the latest version of the Encryption module. If you have the module already, ensure that it is up-to-date.
  3. Remove any existing email modules (IMAP/POP3 or Email Module with Templates).
  4. Check for and remove orphaned JAR files from any old email modules in the userlib subdirectory (for example, javax.mail-1.6.2.jar and activation-1.1.jar).
  5. Clean the deployment directory before running the app.
answered