Caused by: java.lang.ClassNotFoundException: org.mockito.internal.creation.bytebuddy.inject.MockMethodDispatcher

13 hours ago 2
ARTICLE AD BOX

I have integration tests configured in my project with payara-micro-managed, arquillian, and junit5. Everything works fine until I use Mockito. I get this error:

[2025-12-05T14:58:04.760+0000] [] [&amp#27;[1;93mWARNING&amp#27;[0m] [] [&amp#27;[1;94mjakarta.enterprise.web&amp#27;[0m] [tid: _ThreadID=77 _ThreadName=http-thread-pool::http-listener(1)] [timeMillis: 1764946684760] [levelValue: 900] [[ StandardWrapperValve[ArquillianServletRunnerEE9]: Servlet.service() for servlet ArquillianServletRunnerEE9 threw exception org.jboss.weld.exceptions.WeldException at org.jboss.weld.module.ejb.SessionBeanProxyInstantiator.newInstance(SessionBeanProxyInstantiator.java:69) at org.jboss.weld.module.ejb.SessionBeanImpl.create(SessionBeanImpl.java:157) at org.jboss.weld.contexts.unbound.DependentContextImpl.get(DependentContextImpl.java:64) at org.jboss.weld.bean.ContextualInstanceStrategy$DefaultContextualInstanceStrategy.get(ContextualInstanceStrategy.java:106) at org.jboss.weld.bean.ContextualInstance.get(ContextualInstance.java:50) at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:706) at org.jboss.weld.manager.BeanManagerImpl.getInjectableReference(BeanManagerImpl.java:813) at org.jboss.weld.injection.FieldInjectionPoint.inject(FieldInjectionPoint.java:93) at org.jboss.weld.util.Beans.injectBoundFields(Beans.java:357) at org.jboss.weld.util.Beans.injectFieldsAndInitializers(Beans.java:368) at org.jboss.weld.injection.producer.ResourceInjector$1.proceed(ResourceInjector.java:70) at org.glassfish.weld.services.InjectionServicesImpl.aroundInject(InjectionServicesImpl.java:245) at org.jboss.weld.injection.InjectionContextImpl.run(InjectionContextImpl.java:47) at org.jboss.weld.injection.producer.ResourceInjector.inject(ResourceInjector.java:72) at org.jboss.weld.injection.producer.BasicInjectionTarget.inject(BasicInjectionTarget.java:126) at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:165) at org.jboss.weld.contexts.AbstractContext.get(AbstractContext.java:96) at org.jboss.weld.bean.ContextualInstanceStrategy$DefaultContextualInstanceStrategy.get(ContextualInstanceStrategy.java:106) at org.jboss.weld.bean.ContextualInstanceStrategy$CachingContextualInstanceStrategy.get(ContextualInstanceStrategy.java:192) at org.jboss.weld.bean.ContextualInstance.get(ContextualInstance.java:50) at org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:101) at org.jboss.weld.bean.proxy.ProxyMethodHandler.getInstance(ProxyMethodHandler.java:136) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:253) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:211) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:253) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:211) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:257) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:166) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:757) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:577) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:158) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:372) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:239) at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:520) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:217) at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:174) at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:153) at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:196) at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:88) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:246) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:178) at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:118) at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:96) at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:51) at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:510) at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:82) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:83) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:101) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:535) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:515) at java.base/java.lang.Thread.run(Thread.java:1583) Caused by: java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:74) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) at org.jboss.weld.security.NewInstanceAction.run(NewInstanceAction.java:40) at java.base/java.security.AccessController.doPrivileged(AccessController.java:571) at org.jboss.weld.module.ejb.SessionBeanProxyInstantiator.newInstance(SessionBeanProxyInstantiator.java:55) ... 55 more Caused by: java.lang.NoClassDefFoundError: org/mockito/internal/creation/bytebuddy/inject/MockMethodDispatcher at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ... 60 more Caused by: java.lang.ClassNotFoundException: org.mockito.internal.creation.bytebuddy.inject.MockMethodDispatcher ... 64 more

I don't understand why I get this error even though I have the mockito-core library. My configuration looks like this:

maven profile for building payara micro jar and running tests

<profile> <id>build-test-microbundle</id> <build> <plugins> <plugin> <groupId>fish.payara.maven.plugins</groupId> <artifactId>payara-micro-maven-plugin</artifactId> <executions> <execution> <id>create-microbundle</id> <phase>package</phase> <goals> <goal>bundle</goal> </goals> </execution> </executions> <configuration> <payaraVersion>${payaraVersion}</payaraVersion> <payaraMicroAbsolutePath> target/microbundle.jar </payaraMicroAbsolutePath> <deployWar>false</deployWar> <customJars> <artifactItem> <groupId>net.bytebuddy</groupId> <artifactId>byte-buddy-agent</artifactId> </artifactItem> <artifactItem> <groupId>net.bytebuddy</groupId> <artifactId>byte-buddy</artifactId> </artifactItem> <artifactItem> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> </artifactItem> </customJars> </configuration> </plugin> </plugins> </build> </profile> <profile> <id>integration-test</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <systemPropertyVariables> <arquillian.launch>payara-micro-managed</arquillian.launch> </systemPropertyVariables> <includes> <include>**/*IntegrationTest.java</include> </includes> </configuration> </plugin> </plugins> </build> </profile>

arquillian.xml

<arquillian xmlns="http://jboss.org/schema/arquillian" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd"> <container qualifier="payara-micro-managed" default="true"> <configuration> <property name="microJar">target/microbundle.jar</property> <property name="autoBindHttp">true</property> <property name="clusterEnabled">false</property> </configuration> </container> </arquillian>

@Deployment method

@Deployment public static WebArchive getArchive() { WebArchive war = ShrinkWrap.create(WebArchive.class, "test.war"); war.addPackages(true, "com.example"); war.addAsLibraries(Maven.resolver() .loadPomFromFile("pom.xml") .importDependencies(ScopeType.COMPILE, ScopeType.TEST) .resolve() .withTransitivity() .asFile()); return war; }

Test

@Test public void testResolveActionWithoutRedirectNavigationParameters() { Action action = Mockito.mock(Action.class); assertNotNull(action); }

Dependencies

<dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <version>5.15.2<version> </dependency> <dependency> <groupId>fish.payara.arquillian</groupId> <artifactId>arquillian-payara-micro-managed</artifactId> <version>4.0.alpha4</version> <scope>test</scope> </dependency> <dependency> <groupId>org.jboss.arquillian.junit5</groupId> <artifactId>arquillian-junit5-container</artifactId> <version>1.7.0.Final</version> <scope>test</scope> </dependency> <dependency> <groupId>org.jboss.arquillian.protocol</groupId> <artifactId>arquillian-protocol-servlet</artifactId> <version>1.7.0.Final</version> <scope>test</scope> </dependency>

Im using payara 6.2025.11

Read Entire Article