-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
None
-
None
Smallrye Reactive Messaging, in a CDI Extension method that observes AfterDeploymentValidation, triggers invocation of @Outgoing methods on CDI beans. If such a bean is a REST resource this in turn results in use of JaxrsInjectionTarget and then registration of built-in Jakarta REST Providers by ResteasyProviderFactoryImpl.
This fails when the mvc-krazo subsystem is part of the configuration. If it is RESTEasy tries to register the org.eclipse.krazo.bootstrap.CoreFeature provider. This provider injects and uses a ServletContext in its Feature.configure method. But at this stage of deployment processing the ServletContext is not available. This results in deployment failure.
This causes failures of ReactiveMessagingChannelsTestCase in tests of WildFly Preview. In that environment the mvc-krazo subsystem is part of the server config.
[0m[31m03:31:11,474 ERROR [io.smallrye.reactive.messaging.provider] (MSC service thread 1-2) SRMSG00200: The method org.wildfly.test.integration.microprofile.reactive.messaging.rest.channels.PublisherToChannelPublisherEndpoint#generate has thrown an exception: io.smallrye.reactive.messaging.providers.ProcessingException: SRMSG00103: Exception thrown when calling the method org.wildfly.test.integration.microprofile.reactive.messaging.rest.channels.PublisherToChannelPublisherEndpoint#generate at io.smallrye.reactive.messaging@4.30.0//io.smallrye.reactive.messaging.providers.AbstractMediator.lambda$initialize$12(AbstractMediator.java:150) at io.smallrye.reactive.messaging@4.30.0//io.smallrye.reactive.messaging.providers.AbstractMediator.invoke(AbstractMediator.java:164) at io.smallrye.reactive.messaging@4.30.0//io.smallrye.reactive.messaging.providers.PublisherMediator.produceAPublisherBuilderOfPayloads(PublisherMediator.java:114) at io.smallrye.reactive.messaging@4.30.0//io.smallrye.reactive.messaging.providers.PublisherMediator.initialize(PublisherMediator.java:76) at io.smallrye.reactive.messaging@4.30.0//io.smallrye.reactive.messaging.providers.extension.MediatorManager.createMediator(MediatorManager.java:240) at io.smallrye.reactive.messaging@4.30.0//io.smallrye.reactive.messaging.providers.extension.MediatorManager$Proxy$_$$_WeldClientProxy.createMediator(Unknown Source) at io.smallrye.reactive.messaging@4.30.0//io.smallrye.reactive.messaging.providers.wiring.Wiring$PublisherMediatorComponent.materialize(Wiring.java:624) at io.smallrye.reactive.messaging@4.30.0//io.smallrye.reactive.messaging.providers.wiring.Graph.lambda$materialize$10(Graph.java:100) at java.base/java.util.ArrayList.forEach(ArrayList.java:1604) at io.smallrye.reactive.messaging@4.30.0//io.smallrye.reactive.messaging.providers.wiring.Graph.materialize(Graph.java:99) at io.smallrye.reactive.messaging@4.30.0//io.smallrye.reactive.messaging.providers.extension.MediatorManager.start(MediatorManager.java:263) at io.smallrye.reactive.messaging@4.30.0//io.smallrye.reactive.messaging.providers.extension.MediatorManager$Proxy$_$$_WeldClientProxy.start(Unknown Source) at io.smallrye.reactive.messaging@4.30.0//io.smallrye.reactive.messaging.providers.extension.ReactiveMessagingExtension.startMediatorManager(ReactiveMessagingExtension.java:141) at io.smallrye.reactive.messaging@4.30.0//io.smallrye.reactive.messaging.providers.extension.ReactiveMessagingExtension.afterDeploymentValidation(ReactiveMessagingExtension.java:110) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) at java.base/java.lang.reflect.Method.invoke(Method.java:565) at org.jboss.weld.core@6.0.3.Final//org.jboss.weld.injection.StaticMethodInjectionPoint.invoke(StaticMethodInjectionPoint.java:100) at org.jboss.weld.core@6.0.3.Final//org.jboss.weld.injection.MethodInvocationStrategy$SpecialParamPlusBeanManagerStrategy.invoke(MethodInvocationStrategy.java:199) at org.jboss.weld.core@6.0.3.Final//org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:350) at org.jboss.weld.core@6.0.3.Final//org.jboss.weld.event.ExtensionObserverMethodImpl.sendEvent(ExtensionObserverMethodImpl.java:136) at org.jboss.weld.core@6.0.3.Final//org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:328) at org.jboss.weld.core@6.0.3.Final//org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:298) at jakarta.enterprise.api//jakarta.enterprise.inject.spi.ObserverMethod.notify(ObserverMethod.java:140) at org.jboss.weld.core@6.0.3.Final//org.jboss.weld.util.Observers.notify(Observers.java:174) at org.jboss.weld.core@6.0.3.Final//org.jboss.weld.event.ObserverNotifier.notifySyncObservers(ObserverNotifier.java:307) at org.jboss.weld.core@6.0.3.Final//org.jboss.weld.event.ObserverNotifier.notify(ObserverNotifier.java:293) at org.jboss.weld.core@6.0.3.Final//org.jboss.weld.event.ObserverNotifier.fireEvent(ObserverNotifier.java:185) at org.jboss.weld.core@6.0.3.Final//org.jboss.weld.event.ObserverNotifier.fireEvent(ObserverNotifier.java:179) at org.jboss.weld.core@6.0.3.Final//org.jboss.weld.bootstrap.events.AbstractContainerEvent.fire(AbstractContainerEvent.java:53) at org.jboss.weld.core@6.0.3.Final//org.jboss.weld.bootstrap.events.AbstractDeploymentContainerEvent.fire(AbstractDeploymentContainerEvent.java:35) at org.jboss.weld.core@6.0.3.Final//org.jboss.weld.bootstrap.events.AfterDeploymentValidationImpl.fire(AfterDeploymentValidationImpl.java:28) at org.jboss.weld.core@6.0.3.Final//org.jboss.weld.bootstrap.WeldStartup.validateBeans(WeldStartup.java:505) at org.jboss.weld.core@6.0.3.Final//org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:94) at org.jboss.as.weld@39.0.0.Final-SNAPSHOT//org.jboss.as.weld.WeldStartService.start(WeldStartService.java:81) at org.jboss.msc@1.5.6.Final//org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1553) at org.jboss.msc@1.5.6.Final//org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1516) at org.jboss.msc@1.5.6.Final//org.jboss.msc.service.ServiceControllerImpl$ControllerTask.run(ServiceControllerImpl.java:1374) at org.jboss.threads@3.9.2//org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18) at org.jboss.threads@3.9.2//org.jboss.threads.EnhancedQueueExecutor$Task.doRunWith(EnhancedQueueExecutor.java:2651) at org.jboss.threads@3.9.2//org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2630) at org.jboss.threads@3.9.2//org.jboss.threads.EnhancedQueueExecutor.runThreadBody(EnhancedQueueExecutor.java:1622) at org.jboss.threads@3.9.2//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1589) at java.base/java.lang.Thread.run(Thread.java:1474) Caused by: 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:565) at io.smallrye.reactive.messaging@4.30.0//io.smallrye.reactive.messaging.providers.AbstractMediator.lambda$initialize$12(AbstractMediator.java:137) ... 42 more Caused by: java.lang.RuntimeException: org.jboss.resteasy.spi.LoggableFailure: RESTEASY003880: Unable to find contextual data of type: jakarta.servlet.ServletContext at org.jboss.resteasy.resteasy-core@7.0.1.Final//org.jboss.resteasy.plugins.providers.RegisterBuiltin.register(RegisterBuiltin.java:73) at org.jboss.resteasy.resteasy-core@7.0.1.Final//org.jboss.resteasy.plugins.providers.RegisterBuiltin.register(RegisterBuiltin.java:60) at org.jboss.resteasy.resteasy-core@7.0.1.Final//org.jboss.resteasy.core.providerfactory.ResteasyProviderFactoryImpl.registerBuiltin(ResteasyProviderFactoryImpl.java:211) at org.jboss.resteasy.resteasy-core-spi@7.0.1.Final//org.jboss.resteasy.spi.ResteasyProviderFactory.getInstance(ResteasyProviderFactory.java:112) at org.jboss.resteasy.resteasy-cdi@7.0.1.Final//org.jboss.resteasy.cdi.JaxrsInjectionTarget.getPropertyInjector(JaxrsInjectionTarget.java:117) at org.jboss.resteasy.resteasy-cdi@7.0.1.Final//org.jboss.resteasy.cdi.JaxrsInjectionTarget.inject(JaxrsInjectionTarget.java:64) at org.jboss.weld.core@6.0.3.Final//org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:165) at org.jboss.weld.core@6.0.3.Final//org.jboss.weld.contexts.AbstractContext.get(AbstractContext.java:96) at org.jboss.weld.core@6.0.3.Final//org.jboss.weld.bean.ContextualInstanceStrategy$DefaultContextualInstanceStrategy.get(ContextualInstanceStrategy.java:106) at org.jboss.weld.core@6.0.3.Final//org.jboss.weld.bean.ContextualInstanceStrategy$ApplicationScopedContextualInstanceStrategy.get(ContextualInstanceStrategy.java:152) at org.jboss.weld.core@6.0.3.Final//org.jboss.weld.bean.ContextualInstance.get(ContextualInstance.java:50) at org.jboss.weld.core@6.0.3.Final//org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:101) at org.jboss.weld.core@6.0.3.Final//org.jboss.weld.bean.proxy.ProxyMethodHandler.getInstance(ProxyMethodHandler.java:136) at deployment.rm-channels-client.war//org.wildfly.test.integration.microprofile.reactive.messaging.rest.channels.PublisherToChannelPublisherEndpoint$Proxy$_$$_WeldClientProxy.generate(Unknown Source) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ... 44 more Caused by: org.jboss.resteasy.spi.LoggableFailure: RESTEASY003880: Unable to find contextual data of type: jakarta.servlet.ServletContext at org.jboss.resteasy.resteasy-core@7.0.1.Final//org.jboss.resteasy.core.ContextParameterInjector$GenericDelegatingProxy.invoke(ContextParameterInjector.java:132) at jakarta.servlet.api@6.1.0/jdk.proxy6/jdk.proxy6.$Proxy82.getAttribute(Unknown Source) at org.eclipse.krazo.core@3.0.1//org.eclipse.krazo.bootstrap.Initializer.isMvcApplication(Initializer.java:79) at org.eclipse.krazo.core@3.0.1//org.eclipse.krazo.bootstrap.Initializer.initialize(Initializer.java:58) at org.eclipse.krazo.core@3.0.1//org.eclipse.krazo.bootstrap.CoreFeature.configure(CoreFeature.java:50) at org.jboss.resteasy.resteasy-core@7.0.1.Final//org.jboss.resteasy.core.providerfactory.ResteasyProviderFactoryImpl.addFeature(ResteasyProviderFactoryImpl.java:899) at org.jboss.resteasy.resteasy-core@7.0.1.Final//org.jboss.resteasy.core.providerfactory.ResteasyProviderFactoryImpl.processProviderContracts(ResteasyProviderFactoryImpl.java:856) at org.jboss.resteasy.resteasy-core@7.0.1.Final//org.jboss.resteasy.core.providerfactory.ResteasyProviderFactoryImpl.registerProvider(ResteasyProviderFactoryImpl.java:802) at org.jboss.resteasy.resteasy-core@7.0.1.Final//org.jboss.resteasy.core.providerfactory.ResteasyProviderFactoryImpl.registerProvider(ResteasyProviderFactoryImpl.java:791) at org.jboss.resteasy.resteasy-core@7.0.1.Final//org.jboss.resteasy.plugins.providers.RegisterBuiltin.registerProviders(RegisterBuiltin.java:90) at org.jboss.resteasy.resteasy-core@7.0.1.Final//org.jboss.resteasy.plugins.providers.RegisterBuiltin.register(RegisterBuiltin.java:71) ... 58 more