Remote Naming EJB invocation with EJB Client Legacy library throws EJBCLIENT000025: No EJB receiver available. The same code run using EAP 7.0 jboss-client.jar works.
Hashtable<String, String> env = new Hashtable<String, String>(); env.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming"); env.put("java.naming.factory.initial", "org.jboss.naming.remote.client.InitialContextFactory"); env.put("java.naming.provider.url", String.format("%s://%s:%d", protocol, host, port)); env.put("jboss.naming.client.ejb.context", "true"); // this needs to be set for RemoteNaming InitialContext to be able to invoke an ejb env.put(Context.SECURITY_PRINCIPAL, username); env.put(Context.SECURITY_CREDENTIALS, password); InitialContext ctx = new InitialContext(env); Hello ejb = (Hello) ctx.lookup("/ejb-client/Hello!com.jboss.examples.ejb.Hello"); System.out.println(ejb.sayHello()); ctx.close();
java.lang.IllegalStateException: EJBCLIENT000025: No EJB receiver available for handling [appName:, moduleName:ejb-client, distinctName:] combination for invocation context org.jboss.ejb.client.EJBClientInvocationContext@2aa5fe93 at org.jboss.ejb.client.EJBClientContext.requireEJBReceiver(EJBClientContext.java:825) at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:128) at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:186) at org.jboss.ejb.client.EJBInvocationHandler.sendRequestWithPossibleRetries(EJBInvocationHandler.java:257) at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:202) at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:185) at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:148) at com.sun.proxy.$Proxy2.sayHello(Unknown Source) at com.jboss.examples.ejb.HelloClient.testRemoteProtocol(HelloClient.java:155) at com.jboss.examples.ejb.HelloClient.main(HelloClient.java:48)