Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Exception in thread "main" java.lang.IllegalStateException: No EJB receiver available for handling [appName:,modulename:HelloWorldSessionBean,distinctname:] combination for invocation context org.jboss.ejb.client.EJBClientInvocationContext@41408b80
- 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 $Proxy0.sayHello(Unknown Source)
- at com.ibytecode.client.EJBApplicationClient.main(EJBApplicationClient.java:16)
- import javax.ejb.Remote;
- @Remote
- public interface HelloWorld {
- public String sayHello();
- }
- import com.ibytecode.business.HelloWorld;
- import javax.ejb.Stateless;
- /**
- * Session Bean implementation class HelloWorldBean
- */
- @Stateless
- public class HelloWorldBean implements HelloWorld {
- /**
- * Default constructor.
- */
- public HelloWorldBean() {
- }
- public String sayHello() {
- return "Hello World !!!";
- }
- package com.ibytecode.client;
- import javax.naming.Context;
- import javax.naming.NamingException;
- import com.ibytecode.business.HelloWorld;
- import com.ibytecode.businesslogic.HelloWorldBean;
- import com.ibytecode.clientutility.ClientUtility;
- public class EJBApplicationClient {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- HelloWorld bean = doLookup();
- System.out.println(bean.sayHello()); // 4. Call business logic
- }
- private static HelloWorld doLookup() {
- Context context = null;
- HelloWorld bean = null;
- try {
- // 1. Obtaining Context
- context = ClientUtility.getInitialContext();
- // 2. Generate JNDI Lookup name
- String lookupName = getLookupName();
- // 3. Lookup and cast
- bean = (HelloWorld) context.lookup(lookupName);
- } catch (NamingException e) {
- e.printStackTrace();
- }
- return bean;
- }
- private static String getLookupName() {
- /*
- The app name is the EAR name of the deployed EJB without .ear suffix.
- Since we haven't deployed the application as a .ear,
- the app name for us will be an empty string
- */
- String appName = "";
- /* The module name is the JAR name of the deployed EJB
- without the .jar suffix.
- */
- String moduleName = "HelloWorldSessionBean";
- /*AS7 allows each deployment to have an (optional) distinct name.
- This can be an empty string if distinct name is not specified.
- */
- String distinctName = "";
- // The EJB bean implementation class name
- String beanName = HelloWorldBean.class.getSimpleName();
- // Fully qualified remote interface name
- final String interfaceName = HelloWorld.class.getName();
- // Create a look up string name
- String name = "ejb:" + appName + "/" + moduleName + "/" +
- distinctName + "/" + beanName + "!" + interfaceName;
- return name;
- }
- }
- import java.util.Properties;
- import javax.naming.Context;
- import javax.naming.InitialContext;
- import javax.naming.NamingException;
- public class ClientUtility {
- private static Context initialContext;
- private static final String PKG_INTERFACES = "org.jboss.ejb.client.naming";
- public static Context getInitialContext() throws NamingException {
- if (initialContext == null) {
- Properties properties = new Properties();
- properties.put("jboss.naming.client.ejb.context", true);
- properties.put(Context.URL_PKG_PREFIXES, PKG_INTERFACES);
- initialContext = new InitialContext(properties);
- }
- return initialContext;
- }
- java:global/MyBankLogicEAR/MyBankLogic/Account!main.IAccount
- java:app/MyBankLogic/Account!main.IAccount
- java:module/Account!main.IAccount
- java:jboss/exported/MyBankLogicEAR/MyBankLogic/Account!main.IAccount
- java:global/MyBankLogicEAR/MyBankLogic/Account
- java:app/MyBankLogic/Account
- java:module/Account
- final Hashtable jndiProperties = new Hashtable();
- jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
- try {
- final Context context = new InitialContext(jndiProperties);
- String appName = "";
- String moduleName = "jboss-firstbean";
- String distinctName = "";
- String beanName = "FirstBean";
- String interfaceFullName = "ejb.RemoteFirstBean";
- final String jndi = "ejb:" + appName + "/" + moduleName + "/" + distinctName + "/" + beanName + "!" + viewClassName;
- RemoteFirstBean statelessRemote = (RemoteFirstBean)context.lookup(jndi);
- } catch (NamingException ex) {
- System.out.println("problems");
- }
Advertisement
Add Comment
Please, Sign In to add comment