-
Notifications
You must be signed in to change notification settings - Fork 312
Open
Labels
Status: AcceptedConfirmed defect or accepted improvement to implement, issue has been escalated to Platform DevConfirmed defect or accepted improvement to implement, issue has been escalated to Platform DevType: BugLabel issue as a bug defectLabel issue as a bug defect
Description
Brief Summary
When injecting a MicroProfile @RestClient interface into a CDI bean, injection fails, but only when restarting the server.
Latest server is being used (6.2025.9)
The issue is in the first file at the injection point.
MyApplication.java
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import org.eclipse.microprofile.rest.client.inject.RestClient;
@ApplicationScoped
public class MyApplication {
@Inject
@RestClient
RestApiClient client;
}
RestApiClient.java
import jakarta.ws.rs.Consumes;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;
import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
@Path("/api")
@RegisterRestClient
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public interface RestApiClient {
@GET
@Path("/greet")
String greet();
}
I believe it relates to an old bug #4704
Expected Outcome
Domain starts and restarts successfully
Current Outcome
Initial deployment is OK. However, when domain is stopped and started, (or re-started) using asadmin start-domain or asadmin restart-domain, you see the following exception and the app fails to deploy:
[#|2025-09-24T22:33:41.918-0500|SEVERE|Payara 6.2025.9|javax.enterprise.system.core|_ThreadID=58;_ThreadName=RunLevelControllerThread-1758771218774;_TimeMillis=1758771221918;_LevelValue=1000;_MessageID=NCLS-CORE-00026;|
Exception during lifecycle processing
org.glassfish.deployment.common.DeploymentException: CDI deployment failure:WELD-001408: Unsatisfied dependencies for type RestApiClient with qualifiers @RestClient
at injection point [BackedAnnotatedField] @Inject @RestClient com.flowlogix.reproducers.payara.MyApplication.client
at com.flowlogix.reproducers.payara.MyApplication.client(MyApplication.java:0)
-- WELD-001408: Unsatisfied dependencies for type RestApiClient with qualifiers @RestClient
at injection point [BackedAnnotatedField] @Inject @RestClient com.flowlogix.reproducers.payara.MyApplication.client
at com.flowlogix.reproducers.payara.MyApplication.client(MyApplication.java:0)
at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:379)
at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:294)
at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:141)
at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:163)
at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:533)
at org.jboss.weld.bootstrap.Validator.validateBeans(Validator.java:518)
at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:493)
at org.jboss.weld.bootstrap.WeldStartup.validateBeans(WeldStartup.java:497)
at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:94)
at org.glassfish.weld.WeldDeployer.startWeldBootstrap(WeldDeployer.java:568)
at org.glassfish.weld.WeldDeployer.processApplicationLoaded(WeldDeployer.java:501)
at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:399)
at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:135)
at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:344)
at com.sun.enterprise.v3.server.ApplicationLifecycle.prepare(ApplicationLifecycle.java:571)
at com.sun.enterprise.v3.server.ApplicationLoaderService.processApplication(ApplicationLoaderService.java:434)
at com.sun.enterprise.v3.server.ApplicationLoaderService.postConstruct(ApplicationLoaderService.java:266)
at org.jvnet.hk2.internal.ClazzCreator.postConstructMe(ClazzCreator.java:303)
at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:351)
at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:466)
at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:281)
at org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:65)
at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2103)
at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:93)
at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:67)
at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.oneJob(CurrentTaskFuture.java:1213)
at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.run(CurrentTaskFuture.java:1144)
at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$UpOneLevel.run(CurrentTaskFuture.java:762)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
at java.base/java.lang.Thread.run(Thread.java:1474)
|#]
Reproducer
- Clone the reproducer: https://github.com/flowlogix/mp-rest-client-deploy-fail
./mvnw package- Deploy the WAR
- stop the domain
- restart the domain
You will see the error when restarting
Or, you can deploy the attached WAR.
mp-rest-client-deploy-fail-1.x-SNAPSHOT.war.zip
Operating System
Any
JDK Version
Zulu 25
Payara Distribution
Payara Server Full Profile
Metadata
Metadata
Assignees
Labels
Status: AcceptedConfirmed defect or accepted improvement to implement, issue has been escalated to Platform DevConfirmed defect or accepted improvement to implement, issue has been escalated to Platform DevType: BugLabel issue as a bug defectLabel issue as a bug defect