6 Replies Latest reply on Apr 5, 2018 7:41 AM by mayerw01

    EJB Remote Call

    marcusdidiusfalco

      Hello,

       

      I am trying to call an EJB from a remote client.

      JBoss EAP 7.1

       

      @Remote
      public interface CustomerDAO extends AbstractDAO<Long, Customer> {
          
          public int deleteAll();
          public List<Customer> findAll();
      
      }
      
      @Stateless
      public class CustomerDAOBean extends AbstractDAOBean<Long, Customer> implements CustomerDAO {
      
          @Override
          public int deleteAll() {
              List<Customer> customers = null;
              TypedQuery<Customer> query = em.createNamedQuery(Customer.FIND_ALL, Customer.class);
              customers = query.getResultList();
              int num = customers.size();
              customers.forEach(em::remove);
              return num;
          }
      
          @Override
          public List<Customer> findAll() {
              TypedQuery<Customer> query = em.createNamedQuery(Customer.FIND_ALL, Customer.class);
              return query.getResultList();
          }
      
      }
      
      
      
      
      

       

       

      java:global/kundenverwaltung-ear/kundenverwaltung-ejb/MemberRegistration!de.rupp.service.MemberRegistration

          java:app/kundenverwaltung-ejb/MemberRegistration!de.rupp.service.MemberRegistration

          java:module/MemberRegistration!de.rupp.service.MemberRegistration

          java:global/kundenverwaltung-ear/kundenverwaltung-ejb/MemberRegistration

          java:app/kundenverwaltung-ejb/MemberRegistration

          java:module/MemberRegistration

       

      Client:

      public class CustomerTest {
          
          private CustomerDAO customerDAO;
          
          @Before
          public void init() throws Exception {
              try {
                  final Hashtable<String, Comparable> jndiProperties =
                          new Hashtable<>();
                  jndiProperties.put(Context.INITIAL_CONTEXT_FACTORY,
                          "org.wildfly.naming.client.WildFlyInitialContextFactory");
                  jndiProperties.put("jboss.naming.client.ejb.context", true);
                  
                  jndiProperties.put(Context.PROVIDER_URL, "http-remoting://localhost:8080");
                  jndiProperties.put(Context.SECURITY_PRINCIPAL, "adminr");
                  jndiProperties.put(Context.SECURITY_CREDENTIALS, "jboss_123");
                  
                  final Context context = new InitialContext(jndiProperties);
                  
                  final String lookupName = "ejb:/kundenverwaltung-ear/kundenverwaltung-ejb/CustomerDAOBean!de.rupp.persistence.CustomerDAO";
                  
                  this.customerDAO = (CustomerDAO) context.lookup(lookupName);
                  
              } catch (Exception ex) {
                  ex.printStackTrace();
                  throw ex;
              }
          }
          
          
          @Test
          public void test() {
              assertNotNull(customerDAO);
          }
          
          @Test
          public void testInsert() {
              Customer customer = new Customer();
              customer.setFirstName("Hein");
              customer.setLastName("Blöd");
              this.customerDAO.save(customer);
              List<Customer> customers = this.customerDAO.findAll();
              assertTrue(customers.size() > 0);
          }
      
      }
      

       

      I have added the user with the option to allow remote access.

       

      test() succeeds

      testInsert() fails with

       

      org.jboss.ejb.client.RequestSendFailedException: EJBCLIENT000409: No more destinations are available

          at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:567)

          at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:503)

          at org.jboss.ejb.protocol.remote.RemotingEJBClientInterceptor.handleInvocationResult(RemotingEJBClientInterceptor.java:56)

          at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:569)

          at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:503)

          at org.jboss.ejb.client.TransactionPostDiscoveryInterceptor.handleInvocationResult(TransactionPostDiscoveryInterceptor.java:133)

          at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:569)

          at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:503)

          at org.jboss.ejb.client.DiscoveryEJBClientInterceptor.handleInvocationResult(DiscoveryEJBClientInterceptor.java:108)

          at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:569)

          at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:503)

          at org.jboss.ejb.client.NamingEJBClientInterceptor.handleInvocationResult(NamingEJBClientInterceptor.java:78)

          at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:569)

          at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:503)

          at org.jboss.ejb.client.TransactionInterceptor.handleInvocationResult(TransactionInterceptor.java:172)

          at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:569)

          at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:503)

          at org.jboss.ejb.client.EJBClientInvocationContext.awaitResponse(EJBClientInvocationContext.java:913)

          at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:177)

          at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:112)

          at com.sun.proxy.$Proxy6.save(Unknown Source)

          at test.CustomerTest.testInsert(CustomerTest.java:60)

          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

          at java.lang.reflect.Method.invoke(Method.java:498)

          at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)

          at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)

          at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)

          at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)

          at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)

          at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)

          at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)

          at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)

          at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)

          at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)

          at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)

          at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)

          at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)

          at org.junit.runners.ParentRunner.run(ParentRunner.java:363)

          at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)

          at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)

          at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:538)

          at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:760)

          at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:460)

          at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)

          Suppressed: org.jboss.ejb.client.RequestSendFailedException: org.jboss.remoting3.ServiceOpenException: Unknown service name@http-remoting://localhost:8080

              at org.jboss.ejb.protocol.remote.RemoteEJBReceiver$1.lambda$handleDone$0(RemoteEJBReceiver.java:83)

              at org.xnio.AbstractIoFuture$NotifierRunnable.run(AbstractIoFuture.java:720)

              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

              at java.lang.Thread.run(Thread.java:745)

       

       

      org.jboss.ejb.client.RequestSendFailedException: EJBCLIENT000409: No more destinations are available

          at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:567)

          at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:503)

          at org.jboss.ejb.protocol.remote.RemotingEJBClientInterceptor.handleInvocationResult(RemotingEJBClientInterceptor.java:56)

          at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:569)

          at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:503)

          at org.jboss.ejb.client.TransactionPostDiscoveryInterceptor.handleInvocationResult(TransactionPostDiscoveryInterceptor.java:133)

          at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:569)

          at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:503)

          at org.jboss.ejb.client.DiscoveryEJBClientInterceptor.handleInvocationResult(DiscoveryEJBClientInterceptor.java:108)

          at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:569)

          at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:503)

          at org.jboss.ejb.client.NamingEJBClientInterceptor.handleInvocationResult(NamingEJBClientInterceptor.java:78)

          at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:569)

          at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:503)

          at org.jboss.ejb.client.TransactionInterceptor.handleInvocationResult(TransactionInterceptor.java:172)

          at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:569)

          at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:503)

          at org.jboss.ejb.client.EJBClientInvocationContext.awaitResponse(EJBClientInvocationContext.java:913)

          at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:177)

          at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:112)

          at com.sun.proxy.$Proxy6.save(Unknown Source)

          at test.CustomerTest.testInsert(CustomerTest.java:60)

          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

          at java.lang.reflect.Method.invoke(Method.java:498)

          at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)

          at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)

          at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)

          at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)

          at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)

          at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)

          at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)

          at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)

          at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)

          at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)

          at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)

          at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)

          at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)

          at org.junit.runners.ParentRunner.run(ParentRunner.java:363)

          at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)

          at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)

          at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:538)

          at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:760)

          at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:460)

          at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)

          Suppressed: org.jboss.ejb.client.RequestSendFailedException: org.jboss.remoting3.ServiceOpenException: Unknown service name@http-remoting://localhost:8080

              at org.jboss.ejb.protocol.remote.RemoteEJBReceiver$1.lambda$handleDone$0(RemoteEJBReceiver.java:83)

              at org.xnio.AbstractIoFuture$NotifierRunnable.run(AbstractIoFuture.java:720)

              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

              at java.lang.Thread.run(Thread.java:745)

        • 1. Re: EJB Remote Call
          jaikiran

          I'm just guessing here, but it could be related to this issue [WEJBHTTP-13] EJB lookup over HTTP times out connection after 60 seconds - JBoss Issue Tracker  which was discovered as part of [WFLY-9636] EJB lookup over HTTP times out connection after 60 seconds - JBoss Issue Tracker

           

          If that's not the case, can you enable TRACE log (of minimally the org.jboss.ejb package) on the client side and attach the files to this thread?

          • 2. Re: EJB Remote Call
            jaikiran

            Actually, looking at your client code again:

             

            1. @Before 
            2. public void init() throws Exception { 
            3. try { 
            4. final Hashtable<String, Comparable> jndiProperties = 
            5. new Hashtable<>(); 
            6.             jndiProperties.put(Context.INITIAL_CONTEXT_FACTORY, 
            7. "org.wildfly.naming.client.WildFlyInitialContextFactory"); 
            8.             jndiProperties.put("jboss.naming.client.ejb.context", true); 
            9.             jndiProperties.put(Context.PROVIDER_URL, "http-remoting://localhost:8080"); 
            10.             jndiProperties.put(Context.SECURITY_PRINCIPAL, "adminr"); 
            11.             jndiProperties.put(Context.SECURITY_CREDENTIALS, "jboss_123"); 
            12. final Context context = new InitialContext(jndiProperties); 
            13. final String lookupName = "ejb:/kundenverwaltung-ear/kundenverwaltung-ejb/CustomerDAOBean!de.rupp.persistence.CustomerDAO"
            14. this.customerDAO = (CustomerDAO) context.lookup(lookupName); 
            15.         } catch (Exception ex) { 
            16.             ex.printStackTrace(); 
            17. throw ex; 
            18.         } 
            19.     } 

             

            I haven't checked how the recent EJB client library handles proxies and it's association to a particular JNDI context and the (remoting) connections backing it. Looking at that code, the JNDI context will go out of scope and probably garbage collected. Could you try making that "context" a member variable of that class which then gets explicitly closed in a "@After" method of the test?

            • 3. Re: EJB Remote Call
              marcusdidiusfalco

              Hello Jaikiran

              Thanks for your replies.

              a.) I don't think its a timeout because the test finishes within a few seconds.

              b.) I have made Context an instance variable and still get the same error.

              • 4. Re: EJB Remote Call
                mayerw01

                The error message is: Unknown service name@http-remoting://localhost:8080

                According to Coding EJB clients for JBoss EAP 7.1 - RHD Blog the service name should be "remote+http"

                • 5. Re: EJB Remote Call
                  marcusdidiusfalco

                  Thanks Wolfgang,

                   

                  I have changed that.

                  Since I also needed a @Local interface I have renamed my @Remote to

                   

                  @Remote

                  public interface CustomerDAORemote extends AbstractDAO<Long, Customer> {

                     

                      public int deleteAll();

                      public List<Customer> findAll();

                   

                  }

                   

                  @Stateless

                  public class CustomerDAOBean extends AbstractDAOBean<Long, Customer> implements CustomerDAO, CustomerDAORemote {

                   

                      @Override

                      public int deleteAll() {

                          //...

                      }

                   

                      @Override

                      public List<Customer> findAll() {

                          //...

                      }

                   

                  }

                   

                  I have noticed that in the server.log my @Remote Interface does not show up

                  java:global/kundenverwaltung-ear/kundenverwaltung-ejb/CustomerDAOBean!de.rupp.persistence.CustomerDAO

                      java:app/kundenverwaltung-ejb/CustomerDAOBean!de.rupp.persistence.CustomerDAO

                      java:module/CustomerDAOBean!de.rupp.persistence.CustomerDAO

                      java:global/kundenverwaltung-ear/kundenverwaltung-ejb/CustomerDAOBean

                      java:app/kundenverwaltung-ejb/CustomerDAOBean

                      java:module/CustomerDAOBean

                   

                  From my client

                  jndiProperties.put(Context.PROVIDER_URL, "remote+http://localhost:8080");

                  final String lookupName = "ejb:/kundenverwaltung-ear/kundenverwaltung-ejb/CustomerDAOBean!de.rupp.persistence.CustomerDAORemote";

                  this.customerDAORemote = (CustomerDAORemote) context.lookup(lookupName);

                   

                  I get the exception

                  org.jboss.ejb.client.RequestSendFailedException: EJBCLIENT000409: No more destinations are available

                      at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:567)

                      at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:503)

                      at org.jboss.ejb.protocol.remote.RemotingEJBClientInterceptor.handleInvocationResult(RemotingEJBClientInterceptor.java:56)

                      at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:569)

                      at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:503)

                      at org.jboss.ejb.client.TransactionPostDiscoveryInterceptor.handleInvocationResult(TransactionPostDiscoveryInterceptor.java:133)

                      at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:569)

                      at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:503)

                      at org.jboss.ejb.client.DiscoveryEJBClientInterceptor.handleInvocationResult(DiscoveryEJBClientInterceptor.java:108)

                      at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:569)

                      at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:503)

                      at org.jboss.ejb.client.NamingEJBClientInterceptor.handleInvocationResult(NamingEJBClientInterceptor.java:78)

                      at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:569)

                      at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:503)

                      at org.jboss.ejb.client.TransactionInterceptor.handleInvocationResult(TransactionInterceptor.java:172)

                      at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:569)

                      at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:503)

                      at org.jboss.ejb.client.EJBClientInvocationContext.awaitResponse(EJBClientInvocationContext.java:913)

                      at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:177)

                      at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:112)

                      at com.sun.proxy.$Proxy6.save(Unknown Source)

                      at test.CustomerTest.testInsert(CustomerTest.java:62)

                      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

                      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

                      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

                      at java.lang.reflect.Method.invoke(Method.java:498)

                      at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)

                      at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)

                      at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)

                      at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)

                      at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)

                      at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)

                      at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)

                      at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)

                      at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)

                      at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)

                      at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)

                      at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)

                      at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)

                      at org.junit.runners.ParentRunner.run(ParentRunner.java:363)

                      at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)

                      at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)

                      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:538)

                      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:760)

                      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:460)

                      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)

                      Suppressed: javax.ejb.NoSuchEJBException: No such EJB: /kundenverwaltung-ear/kundenverwaltung-ejb/CustomerDAOBean @ remote+http://localhost:8080

                          at org.jboss.ejb.protocol.remote.EJBClientChannel$MethodInvocation.handleResponse(EJBClientChannel.java:1070)

                          at org.jboss.ejb.protocol.remote.EJBClientChannel$MethodInvocation.handleResponse(EJBClientChannel.java:997)

                          at org.jboss.remoting3.util.InvocationTracker.signalResponse(InvocationTracker.java:167)

                          at org.jboss.ejb.protocol.remote.EJBClientChannel.processMessage(EJBClientChannel.java:186)

                          at org.jboss.ejb.protocol.remote.EJBClientChannel.access$100(EJBClientChannel.java:112)

                          at org.jboss.ejb.protocol.remote.EJBClientChannel$1$1.handleMessage(EJBClientChannel.java:675)

                          at org.jboss.remoting3.remote.RemoteConnectionChannel.lambda$handleMessageData$3(RemoteConnectionChannel.java:430)

                          at org.jboss.remoting3.EndpointImpl$TrackingExecutor.lambda$execute$0(EndpointImpl.java:926)

                          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

                          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

                          at java.lang.Thread.run(Thread.java:745)

                  • 6. Re: EJB Remote Call
                    mayerw01

                    I understand your application is the ear. Therefore you should remove the 1st '/' in your lookup.

                    Try "ejb:kundenverwaltung-ear/kundenverwaltung-ejb/CustomerDAOBean!de.rupp.persistence.CustomerDAORemote" instead.