Java 21 + Micronaut 4.10.9 + Ignite 3.0: ClassNotFoundException: io.micronaut.core.convert.DefaultConversionService

18 hours ago 2
ARTICLE AD BOX

I hope someone can help me with an issue I'm facing. We have an application using Micronaut 4.10.9 with Apache Ignite 3.0 embedded in the same server. All dependencies and configurations are already set up, and everything seems to start correctly, but it finally fails due to a missing class.

From my research, it appears to be a compatibility issue between Micronaut and Ignite. The Ignite configuration uses both disk persistence and in-memory storage.

I’m attaching the log file in case someone has encountered something similar or can provide some insight. This is all running on Java 21.

% ./gradlew run --no-build-cache To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/9.2.1/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation. Daemon will be stopped at the end of the build > Configure project : Detected use of Lombok, which is strongly discouraged. Annotation processors have been reordered to avoid issues. Consider using Micronaut Sourcegen instead: https://micronaut-projects.github.io/micronaut-sourcegen/latest/guide/ > Task :compileJava > Task :processResources UP-TO-DATE > Task :classes > Task :inspectRuntimeClasspath UP-TO-DATE > Task :run __ __ _ _ | \/ (_) ___ _ __ ___ _ __ __ _ _ _| |_ | |\/| | |/ __| '__/ _ \| '_ \ / _` | | | | __| | | | | | (__| | | (_) | | | | (_| | |_| | |_ |_| |_|_|\___|_| \___/|_| |_|\__,_|\__,_|\__| 2026-04-29 20:43:10.081 INFO [main] m.c.b.m.d.n.t.c.IgniteNodeManager - Ignite 3 initializer .... 2026-04-29 20:43:10.081 INFO [main] m.c.b.m.d.n.t.c.IgniteNodeManager - Node name: micronaut-node-1 2026-04-29 20:43:10.082 INFO [main] m.c.b.m.d.n.t.c.IgniteNodeManager - Work directory: /Users/jose.torrijos/.ignite3/micronaut-node-1 2026-04-29 20:43:10.082 INFO [main] m.c.b.m.d.n.t.c.IgniteNodeManager - Cluster: MicronautIgniteCluster 2026-04-29 20:43:10.082 INFO [main] m.c.b.m.d.n.t.c.IgniteNodeManager - Esquema de RocksDB cargado correctamente en el Classpath. 2026-04-29 20:43:10.083 INFO [main] m.c.b.m.d.n.t.c.IgniteNodeManager - Work directory created: /Users/jose.torrijos/.ignite3/micronaut-node-1 abr 29, 2026 8:43:10 P. M. org.apache.ignite.internal.logger.IgniteLoggerImpl logInternal INFORMACIÓN: Configuration modules loaded [modules=[org.apache.ignite.internal.rest.configuration.RestConfigurationModule@293bb8a5, org.apache.ignite.client.handler.configuration.ClientHandlerConfigurationModule@2416a51, org.apache.ignite.internal.sql.configuration.distributed.SqlClusterConfigurationModule@6fa590ba, org.apache.ignite.internal.sql.configuration.local.SqlNodeConfigurationModule@6e9319f, org.apache.ignite.internal.compute.configuration.ComputeConfigurationModule@72e34f77, org.apache.ignite.internal.storage.pagememory.configuration.PageMemoryStorageEngineLocalConfigurationModule@7bf9b098, org.apache.ignite.internal.storage.rocksdb.configuration.RocksDbStorageEngineLocalConfigurationModule@389adf1d, org.apache.ignite.internal.tx.configuration.TransactionConfigurationModule@77307458, org.apache.ignite.internal.replicator.configuration.ReplicationConfigurationModule@1fc0053e, org.apache.ignite.internal.distributionzones.configuration.DistributionZonesConfigurationModule@290b1b2e, org.apache.ignite.internal.deployunit.configuration.DeploymentConfigurationModule@47874b25, org.apache.ignite.internal.cluster.management.configuration.ClusterManagementConfigurationModule@33617539, org.apache.ignite.internal.security.authentication.SecurityConfigurationModule@2c177f9e, org.apache.ignite.internal.eventlog.config.EventLogConfigurationModule@5db4c359, org.apache.ignite.internal.pagememory.configuration.PageMemoryLocalConfigurationModule@209775a9, org.apache.ignite.internal.storage.configurations.StorageConfigurationModule@18e7143f, org.apache.ignite.internal.schema.configuration.SchemaDistributedConfigurationModule@f9b7332, org.apache.ignite.internal.catalog.configuration.SchemaSynchronizationConfigurationModule@74cec793, org.apache.ignite.internal.metrics.exporters.configuration.OtlpExporterConfigurationModule@6fefce9e, org.apache.ignite.internal.network.configuration.NetworkConfigurationModule@4f8969b0, org.apache.ignite.internal.metrics.configuration.MetricConfigurationModule@1bdf8190, org.apache.ignite.internal.configuration.SystemDistributedConfigurationModule@192f2f27, org.apache.ignite.internal.configuration.SystemLocalConfigurationModule@8a589a2, org.apache.ignite.internal.raft.configuration.RaftConfigurationModule@c65a5ef, org.apache.ignite.internal.worker.configuration.CriticalWorkersConfigurationModule@6b5176f2, org.apache.ignite.internal.failure.configuration.FailureProcessorConfigurationModule@b672aa8, org.apache.ignite.internal.metastorage.configuration.MetaStorageApiConfigurationModule@2fab4aff, org.apache.ignite.internal.configuration.ClusterConfigurationModule@ec0c838, org.apache.ignite.internal.configuration.NodeConfigurationModule@6e46d9f4], localRoots=[RootKey [rootName=ignite, storageType=LOCAL, schemaClass=class org.apache.ignite.internal.configuration.NodeConfigurationSchema, internal=false]], distRoots=[RootKey [rootName=ignite, storageType=DISTRIBUTED, schemaClass=class org.apache.ignite.internal.configuration.ClusterConfigurationSchema, internal=false]]] abr 29, 2026 8:43:11 P. M. org.apache.ignite.internal.logger.IgniteLoggerImpl logInternal INFORMACIÓN: Thread assertions enablement status: false abr 29, 2026 8:43:11 P. M. org.apache.ignite.internal.logger.IgniteLoggerImpl logInternal INFORMACIÓN: # ___ __ ### / | ____ ____ _ _____ / /_ ___ # ##### / /| | / __ \ / __ `// ___// __ \ / _ \ ### ###### / ___ | / /_/ // /_/ // /__ / / / // ___/ ##### ####### /_/ |_|/ .___/ \__,_/ \___//_/ /_/ \___/ ####### ###### /_/ ######## #### ____ _ __ _____ # ######## ## / _/____ _ ____ (_)/ /_ ___ |__ / #### ####### # / / / __ `// __ \ / // __// _ \ /_ < ##### ##### _/ / / /_/ // / / // // /_ / ___/ ___/ / #### ## /___/ \__, //_/ /_//_/ \__/ \___/ /____/ ## /____/ Apache Ignite ver. 3.1.0-SNAPSHOT abr 29, 2026 8:43:11 P. M. org.apache.ignite.internal.logger.IgniteLoggerImpl logInternal INFORMACIÓN: Configured failure handler: [hnd=NoOpFailureHandler [super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]]] abr 29, 2026 8:43:11 P. M. org.apache.ignite.internal.logger.IgniteLoggerImpl logInternal INFORMACIÓN: Server started [address=/[0:0:0:0:0:0:0:0]:3344] 2026-04-29 20:43:11.570 WARN [main] i.s.c.membership.MembershipProtocol - [default:micronaut-node-1:[email protected]:3344] Filtering out seed address: 192.168.100.37:3344 2026-04-29 20:43:11.572 INFO [main] io.scalecube.cluster.Cluster - [default:micronaut-node-1:[email protected]:3344][doStart] Starting, config: ClusterConfig[metadata=null, metadataTimeout=3000, metadataCodec=io.scalecube.cluster.metadata.JdkMetadataCodec@2cd6112b, memberId='39c9691b-c79e-427f-9fd6-9956c9f99d14', memberAlias='micronaut-node-1', externalHost='null', externalPort=null, transportConfig=TransportConfig[port=0, clientSecured=false, connectTimeout=1000, messageCodec=io.scalecube.cluster.transport.api.JdkMessageCodec@7f7eeaaf, maxFrameLength=2097152, transportFactory=org.apache.ignite.internal.network.scalecube.ScaleCubeClusterServiceFactory$2$$Lambda/0x000000d00180c240@e8c381e, addressMapper=java.util.function.Function$$Lambda/0x000000d001074b10@38499139], failureDetectorConfig=FailureDetectorConfig[pingInterval=1000, pingTimeout=200, pingReqMembers=3], gossipConfig=GossipConfig[gossipFanout=3, gossipInterval=200, gossipRepeatMult=3, gossipSegmentationThreshold=1000], membershipConfig=MembershipConfig[seedMembers=[192.168.100.37:3344], syncInterval=30000, syncTimeout=3000, suspicionMult=5, namespace='default', removedMembersHistorySize=42]] 2026-04-29 20:43:11.574 INFO [main] io.scalecube.cluster.Cluster - [default:micronaut-node-1:[email protected]:3344][doStart] Started abr 29, 2026 8:43:11 P. M. org.apache.ignite.internal.logger.IgniteLoggerImpl logInternal INFORMACIÓN: Node joined [node={id=39c9691b-c79e-427f-9fd6-9956c9f99d14, name=micronaut-node-1, address=192.168.100.37:3344}] abr 29, 2026 8:43:11 P. M. org.apache.ignite.internal.logger.IgniteLoggerImpl logInternal INFORMACIÓN: Topology snapshot [nodes=[micronaut-node-1]] 2026-04-29 20:43:11.590 INFO [main] io.scalecube.cluster.Cluster - [default:micronaut-node-1:[email protected]:3344][doShutdown] Shutting down 2026-04-29 20:43:11.592 INFO [main] io.scalecube.cluster.Cluster - [default:micronaut-node-1:[email protected]:3344][leaveCluster] Leaving cluster 2026-04-29 20:43:12.578 INFO [sc-cluster-3344-1] io.scalecube.cluster.Cluster - [default:micronaut-node-1:[email protected]:3344][leaveCluster] Left cluster abr 29, 2026 8:43:12 P. M. org.apache.ignite.internal.logger.IgniteLoggerImpl logInternal INFORMACIÓN: Stopping [address=192.168.100.37:3344] abr 29, 2026 8:43:12 P. M. org.apache.ignite.internal.logger.IgniteLoggerImpl logInternal INFORMACIÓN: Stopped [address=192.168.100.37:3344] 2026-04-29 20:43:12.589 INFO [sc-cluster-3344-1] io.scalecube.cluster.Cluster - [default:micronaut-node-1:[email protected]:3344][doShutdown] Shutdown abr 29, 2026 8:43:12 P. M. org.apache.ignite.internal.logger.IgniteLoggerImpl logInternal INFORMACIÓN: The timeout worker was interrupted, probably the worker is stopping. 2026-04-29 20:43:12.612 ERROR [main] m.c.b.m.d.n.t.c.IgniteNodeManager - CAUSA RAÍZ REAL: java.lang.ClassNotFoundException: io.micronaut.core.convert.DefaultConversionService java.lang.ClassNotFoundException: io.micronaut.core.convert.DefaultConversionService at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) at org.apache.ignite.internal.rest.RestComponent$IgniteMicronaut.<init>(RestComponent.java:342) at org.apache.ignite.internal.rest.RestComponent.buildMicronautContext(RestComponent.java:203) at org.apache.ignite.internal.rest.RestComponent.startServer(RestComponent.java:159) at org.apache.ignite.internal.rest.RestComponent.startAsync(RestComponent.java:116) at org.apache.ignite.internal.app.LifecycleManager.startComponentAsync(LifecycleManager.java:87) at org.apache.ignite.internal.app.LifecycleManager.startComponentsAsync(LifecycleManager.java:105) at org.apache.ignite.internal.app.IgniteImpl.startAsync(IgniteImpl.java:1316) at org.apache.ignite.internal.app.IgniteServerImpl.doStartAsync(IgniteServerImpl.java:395) at org.apache.ignite.internal.util.VersatileReadWriteLock.lambda$inWriteLockAsync$4(VersatileReadWriteLock.java:472) at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1187) at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2341) at org.apache.ignite.internal.util.VersatileReadWriteLock.inWriteLockAsync(VersatileReadWriteLock.java:472) at org.apache.ignite.internal.restart.IgniteAttachmentLock.detachedAsync(IgniteAttachmentLock.java:111) at org.apache.ignite.internal.app.IgniteServerImpl.startAsync(IgniteServerImpl.java:383) at org.apache.ignite.internal.app.IgniteServerImpl.start(IgniteServerImpl.java:418) at mx.com.bmv.market.data.nasdaq.translator.configuration.IgniteNodeManager.igniteServer(IgniteNodeManager.java:101) at mx.com.bmv.market.data.nasdaq.translator.configuration.$IgniteNodeManager$IgniteServer0$Definition.instantiate(Unknown Source) at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2342) at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3162) at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80) at io.micronaut.context.DefaultBeanContext.intializeEagerBean(DefaultBeanContext.java:3051) at io.micronaut.context.DefaultBeanContext.initializeEagerBean(DefaultBeanContext.java:2720) at io.micronaut.context.DefaultBeanContext.initializeContext(DefaultBeanContext.java:2039) at io.micronaut.context.DefaultApplicationContext.initializeContext(DefaultApplicationContext.java:323) at io.micronaut.context.DefaultBeanContext.configureAndStartContext(DefaultBeanContext.java:3362) at io.micronaut.context.DefaultBeanContext.start(DefaultBeanContext.java:345) at io.micronaut.context.DefaultApplicationContext.start(DefaultApplicationContext.java:225) at io.micronaut.runtime.Micronaut.start(Micronaut.java:75) at io.micronaut.runtime.Micronaut.run(Micronaut.java:347) at io.micronaut.runtime.Micronaut.run(Micronaut.java:333) at mx.com.bmv.market.data.nasdaq.translator.Main.main(Main.java:13) 2026-04-29 20:43:12.615 ERROR [main] io.micronaut.runtime.Micronaut - Error starting Micronaut server: Bean definition [org.apache.ignite.IgniteServer] could not be loaded: Error instantiating bean of type [org.apache.ignite.IgniteServer] Message: Error al iniciar el nodo embebido Path Taken: @i.m.c.a.Context o.a.i.IgniteServer m.c.b.m.d.n.t.c.IgniteNodeManager.igniteServer#igniteServer() io.micronaut.context.exceptions.BeanInstantiationException: Bean definition [org.apache.ignite.IgniteServer] could not be loaded: Error instantiating bean of type [org.apache.ignite.IgniteServer] Message: Error al iniciar el nodo embebido Path Taken: @i.m.c.a.Context o.a.i.IgniteServer m.c.b.m.d.n.t.c.IgniteNodeManager.igniteServer#igniteServer() at io.micronaut.context.DefaultBeanContext.initializeContext(DefaultBeanContext.java:2045) at io.micronaut.context.DefaultApplicationContext.initializeContext(DefaultApplicationContext.java:323) at io.micronaut.context.DefaultBeanContext.configureAndStartContext(DefaultBeanContext.java:3362) at io.micronaut.context.DefaultBeanContext.start(DefaultBeanContext.java:345) at io.micronaut.context.DefaultApplicationContext.start(DefaultApplicationContext.java:225) at io.micronaut.runtime.Micronaut.start(Micronaut.java:75) at io.micronaut.runtime.Micronaut.run(Micronaut.java:347) at io.micronaut.runtime.Micronaut.run(Micronaut.java:333) at mx.com.bmv.market.data.nasdaq.translator.Main.main(Main.java:13) Caused by: io.micronaut.context.exceptions.BeanInstantiationException: Error instantiating bean of type [org.apache.ignite.IgniteServer] Message: Error al iniciar el nodo embebido Path Taken: @i.m.c.a.Context o.a.i.IgniteServer m.c.b.m.d.n.t.c.IgniteNodeManager.igniteServer#igniteServer() at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2357) at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3162) at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80) at io.micronaut.context.DefaultBeanContext.intializeEagerBean(DefaultBeanContext.java:3051) at io.micronaut.context.DefaultBeanContext.initializeEagerBean(DefaultBeanContext.java:2720) at io.micronaut.context.DefaultBeanContext.initializeContext(DefaultBeanContext.java:2039) ... 8 common frames omitted Caused by: java.lang.RuntimeException: Error al iniciar el nodo embebido at mx.com.bmv.market.data.nasdaq.translator.configuration.IgniteNodeManager.igniteServer(IgniteNodeManager.java:119) at mx.com.bmv.market.data.nasdaq.translator.configuration.$IgniteNodeManager$IgniteServer0$Definition.instantiate(Unknown Source) at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2342) ... 13 common frames omitted Caused by: org.apache.ignite.lang.IgniteException: IGN-CMN-65535 TraceId:0d98dbaf-2c20-4ea0-ba23-686a31a9ffce Unable to start [node=micronaut-node-1] at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) at org.apache.ignite.internal.util.ExceptionUtils$1.copy(ExceptionUtils.java:855) at org.apache.ignite.internal.util.ExceptionUtils$ExceptionFactory.createCopy(ExceptionUtils.java:789) at org.apache.ignite.internal.util.ExceptionUtils.copyExceptionWithCause(ExceptionUtils.java:591) at org.apache.ignite.internal.util.ExceptionUtils.copyExceptionWithCauseInternal(ExceptionUtils.java:724) at org.apache.ignite.internal.util.ExceptionUtils.copyExceptionWithCause(ExceptionUtils.java:569) at org.apache.ignite.internal.app.IgniteServerImpl.tryToCopyExceptionWithCause(IgniteServerImpl.java:465) at org.apache.ignite.internal.app.IgniteServerImpl.sync(IgniteServerImpl.java:457) at org.apache.ignite.internal.app.IgniteServerImpl.start(IgniteServerImpl.java:418) at mx.com.bmv.market.data.nasdaq.translator.configuration.IgniteNodeManager.igniteServer(IgniteNodeManager.java:101) ... 15 common frames omitted Caused by: java.util.concurrent.ExecutionException: org.apache.ignite.lang.IgniteException: IGN-CMN-65535 TraceId:0d98dbaf-2c20-4ea0-ba23-686a31a9ffce Unable to start [node=micronaut-node-1] at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:396) at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2073) at org.apache.ignite.internal.app.IgniteServerImpl.sync(IgniteServerImpl.java:455) ... 17 common frames omitted Caused by: org.apache.ignite.lang.IgniteException: IGN-CMN-65535 TraceId:0d98dbaf-2c20-4ea0-ba23-686a31a9ffce Unable to start [node=micronaut-node-1] at org.apache.ignite.internal.app.IgniteImpl.handleStartException(IgniteImpl.java:1516) at org.apache.ignite.internal.app.IgniteImpl.startAsync(IgniteImpl.java:1360) at org.apache.ignite.internal.app.IgniteServerImpl.doStartAsync(IgniteServerImpl.java:395) at org.apache.ignite.internal.util.VersatileReadWriteLock.lambda$inWriteLockAsync$4(VersatileReadWriteLock.java:472) at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1187) at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2341) at org.apache.ignite.internal.util.VersatileReadWriteLock.inWriteLockAsync(VersatileReadWriteLock.java:472) at org.apache.ignite.internal.restart.IgniteAttachmentLock.detachedAsync(IgniteAttachmentLock.java:111) at org.apache.ignite.internal.app.IgniteServerImpl.startAsync(IgniteServerImpl.java:383) ... 17 common frames omitted Caused by: java.lang.NoClassDefFoundError: io/micronaut/core/convert/DefaultConversionService at org.apache.ignite.internal.rest.RestComponent$IgniteMicronaut.<init>(RestComponent.java:342) at org.apache.ignite.internal.rest.RestComponent.buildMicronautContext(RestComponent.java:203) at org.apache.ignite.internal.rest.RestComponent.startServer(RestComponent.java:159) at org.apache.ignite.internal.rest.RestComponent.startAsync(RestComponent.java:116) at org.apache.ignite.internal.app.LifecycleManager.startComponentAsync(LifecycleManager.java:87) at org.apache.ignite.internal.app.LifecycleManager.startComponentsAsync(LifecycleManager.java:105) at org.apache.ignite.internal.app.IgniteImpl.startAsync(IgniteImpl.java:1316) ... 24 common frames omitted Caused by: java.lang.ClassNotFoundException: io.micronaut.core.convert.DefaultConversionService at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) ... 31 common frames omitted > Task :run FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':run'. > Process 'command '/Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to generate a Build Scan (powered by Develocity). > Get more help at https://help.gradle.org. Deprecated Gradle features were used in this build, making it incompatible with Gradle 10. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. For more on this, please refer to https://docs.gradle.org/9.2.1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. BUILD FAILED in 18s 4 actionable tasks: 2 executed, 2 up-to-date
Read Entire Article