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

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • None
    • None
    • Application Client
    • None
    • Undefined
    • ---
    • ---

      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.

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

                Created:
                Updated: