JBoss 7.1.1.Final - EJB Remote Call - java.lang.IllegalStateException: No EJB receiver available for handling
sanssan Jan 14, 2013 12:35 PMHi, I do have 2 JBoss stanalon instance running. 1 act as Server and another 1 would client.
SERVER:
Remote Interface
package com.xyz.life.service.ejb; import java.io.Serializable; import java.rmi.RemoteException; import javax.ejb.EJB; import javax.ejb.Remote; @Remote public interface QuoteFacade extends Serializable{ public boolean isAlive() throws RemoteException; }
EJB Impl
package com.xyz.life.common.component.ejb.services; import java.rmi.RemoteException; import javax.ejb.Remote; import javax.ejb.Stateless; @Stateless(mappedName = "QuoteFacadeEJB") @Remote(QuoteFacade.class) public class QuoteFacadeEJB extends CommonSessionBean implements QuoteFacade { private static final long serialVersionUID = -8788783322280644881L; @Override public boolean isAlive() throws RemoteException { return true; } }
server.log
16:40:25,012 INFO [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-4) JNDI bindings for session bean named QuoteFacadeEJB in deployment unit subdeployment "quote.jar" of deployment "q uote.ear" are as follows: java:global/quote/quote.jar/QuoteFacadeEJB!com.xyz.life.service.ejb.QuoteFacade java:app/quote.jar/QuoteFacadeEJB!com.xyz.life.service.ejb.QuoteFacade java:module/QuoteFacadeEJB!com.xyz.life.service.ejb.QuoteFacade java:jboss/exported/quote/quote.jar/QuoteFacadeEJB!com.xyz.life.service.ejb.QuoteFacade java:global/quote/quote.jar/QuoteFacadeEJB java:app/quote.jar/QuoteFacadeEJB java:module/QuoteFacadeEJB
Client
public void testClient() { try { Hashtable<String, Object> jndiProps = new Hashtable<String, Object>(); jndiProps.put(Context.URL_PKG_PREFIXES, JNDINames.JBOSS_CLIENT_NAMING_PREFIX); jndiProps.put("jboss.naming.client.ejb.context", true); Context ctx = new InitialContext(jndiProps); String name = "ejb:global/quote/quote.jar/QuoteFacadeEJB!com.ge.life.annuity.service.ejb.QuoteFacade"; /* "ejb:global/quote/quote.jar/QuoteFacadeEJB!com.ge.life.annuity.service.ejb.QuoteFacade", "ejb:app/quote.jar/QuoteFacadeEJB!com.ge.life.annuity.service.ejb.QuoteFacade", "ejb:jboss/exported/quote/quote.jar/QuoteFacadeEJB!com.ge.life.annuity.service.ejb.QuoteFacade" */ Object ref = ctx.lookup(name); QuoteFacade quoteFacade = (QuoteFacade) ref; LOGGER.debug("isAlive : " + quoteFacade.isAlive()); } catch (Exception e) { LOGGER.error("Remote Client Exception : ", e); } }
endpoint.name=client-endpoint remote.connections=default remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false remote.connection.default.host=localhost remote.connection.default.port = 4447 remote.connection.default.username=admin remote.connection.default.password=Pass1234
No error/log on server side. Client side, it is failing with following error:
java.lang.IllegalStateException: No EJB receiver available for handling [appName:global,modulename:quote,distinctname:quote.jar] combination for invocation context org.jboss.ejb.client.EJBClientInvocationContext@200cae at org.jboss.ejb.client.EJBClientContext.requireEJBReceiver(EJBClientContext.java:584) at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:119) at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181) at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:136) at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:121) at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:104) at $Proxy10.isAlive(Unknown Source)