Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-14033

app-client unable to inject EJB unless also deployed locally to app client process

    XMLWordPrintable

Details

    • ---
    • ---

    Description

      The current app-client quickstart uses a single ear for both server side and client side, this did not make sense as it means the EJBs are also deployed to the client process even though the client process is invoking remote EJBs exclusively.

      I have attempted some refactoring to make the quickstart clearer so users can see the server side requirement and the client side requirement:

      https://github.com/darranl/wildfly-quickstart/tree/WFLY-14027

      The problem is starting app-client now fails with this error:

      Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYEJB0406: No EJB found with interface of type 'org.jboss.as.quickstarts.appclient.server.api.StatelessSession' for binding org.jboss.as.quickstarts.appclient.acc.client.Main/slsb
          at org.jboss.as.ejb3.deployment.processors.EjbInjectionSource.getResourceValue(EjbInjectionSource.java:90)
          at org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor.addJndiBinding(ModuleJndiBindingProcessor.java:271)
          at org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor$1.handle(ModuleJndiBindingProcessor.java:242)
          at org.jboss.as.ee.component.ClassDescriptionTraversal.run(ClassDescriptionTraversal.java:54)
          at org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor.processClassConfigurations(ModuleJndiBindingProcessor.java:246)
          at org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor.deploy(ModuleJndiBindingProcessor.java:160)
          at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:182) [wildfly-server-14.0.0.Beta1.jar:14.0.0.Beta1]
          ... 8 more
      

      This feels as though the injection should either be a proxy which has not yet connected to the remote process or should connect to the remote process first to identify the available beans.

      The reason for delayed connection may be to enable authentication before the application uses the EJBs but deploying server side components on the client doesn't feel like the correct solution.

      Attachments

        Activity

          People

            Unassigned Unassigned
            darran.lofthouse@redhat.com Darran Lofthouse
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: