Skip to content

micronaut-spring-boot:5.4.0 fails with io.micronaut.context.exceptions.NoSuchBeanException: No bean of type [io.micronaut.context.event.ApplicationEventPublisher<io.micronaut.context.event.StartupEvent>] when running a jar file #516

@donbeave

Description

@donbeave

Expected Behavior

No response

Actual Behaviour

gradle bootRun works well, but building the application as jar file and running it leads to an startup error:

Exception in thread "main" java.lang.reflect.InvocationTargetException
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:119)
	at java.base/java.lang.reflect.Method.invoke(Method.java:578)
	at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:91)
	at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:53)
	at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:58)
Caused by: io.micronaut.context.exceptions.NoSuchBeanException: No bean of type [io.micronaut.context.event.ApplicationEventPublisher<io.micronaut.context.event.StartupEvent>] exists. Make sure the bean is not disabled by bean requirements (enable trace logging for 'io.micronaut.context.condition' to check) and if the bean is enabled then ensure the class is declared a bean and annotation processing is enabled (for Java and Kotlin the 'micronaut-inject-java' dependency should be configured as an annotation processor).
	at io.micronaut.context.DefaultBeanContext.newNoSuchBeanException(DefaultBeanContext.java:2773)
	at io.micronaut.context.DefaultApplicationContext.newNoSuchBeanException(DefaultApplicationContext.java:304)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2735)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1729)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:856)
	at io.micronaut.context.BeanLocator.getBean(BeanLocator.java:96)
	at io.micronaut.context.DefaultBeanContext.publishEvent(DefaultBeanContext.java:1815)
	at io.micronaut.context.DefaultBeanContext.start(DefaultBeanContext.java:376)
	at io.micronaut.context.DefaultApplicationContext.start(DefaultApplicationContext.java:199)
	at io.micronaut.spring.context.MicronautApplicationContext.start(MicronautApplicationContext.java:458)
	at com.example.demo.DemoApplication.main(DemoApplication.java:14)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
	... 4 more

Steps To Reproduce

  1. Clone micronaut-spring-no-bean-of-type-applicationeventpublisher-exists repository
  2. Build jar
./gradlew bootJar
  1. Run jar
java -jar build/libs/demo-0.0.1-SNAPSHOT.jar

Environment Information

JDK Version:

openjdk 19.0.2 2023-01-17
OpenJDK Runtime Environment Temurin-19.0.2+7 (build 19.0.2+7)
OpenJDK 64-Bit Server VM Temurin-19.0.2+7 (build 19.0.2+7, mixed mode)

Example Application

https://github.com/donbeave/micronaut-spring-no-bean-of-type-applicationeventpublisher-exists

Version

4.2.3

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions