hi,
I am using JBoss as Application Server.
These are the details of my code for accessing Local ejb -
1. Client : MyLocalEJBClient.java -
----------------------------------
public static void main(
String[] args) {
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
env.put(Context.PROVIDER_URL, "localhost");
env.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
MyLocalEJB localEJB;
try {
Context ctx = new InitialContext(env);
Object obj = ctx.lookup("MyLocalEJB");
MyLocalEJBHome home = (MyLocalEJBHome) obj;
localEJB = home.create();
localEJB.hi();
} catch (NamingException e) {
e.printStackTrace();
} catch (CreateException e) {
e.printStackTrace();
}
}
==================================================================
2. Local interface : MyLocalEJB.java -
---------------------------------
public interface MyLocalEJB extends EJBLocalObject {
public void hi();
}
==================================================================
3. LocalHome interface : MyLocalEJBHome.java
-------------------
public interface MyLocalEJBHome extends EJBLocalHome {
public MyLocalEJB create() throws CreateException;
}
==================================================================
4. Bean class: MyLocalEJBBean -
---------------------------
public class MyLocalEJBBean implements SessionBean {
SessionContext ctx = null;
public void ejbCreate() throws EJBException {
System.out.println("ejbCreate() ...");
}
public void ejbActivate() throws EJBException {
System.out.println("ejbActivate()...");
}
public void ejbPassivate() throws EJBException {
System.out.println("ejbPassivate()...");
}
public void ejbRemove() throws EJBException {
System.out.println("ejbRemove()...");
}
public void setSessionContext(SessionContext ctx) throws EJBException {
this.ctx = ctx;
}
public void hi() {
System.out.println("hi() ....");
}
}
==================================================================
5. ejb-jar.xml -
<ejb-jar>
<enterprise-beans>
<session>
<ejb-name> MyLocalEJB </ejb-name>
<local-home> MyLocalEJBHome </local-home>
<local> MyLocalEJB </local>
<ejb-class> MyLocalEJBBean </ejb-class>
<session-type> Stateless </session-type>
<transaction-type> Container </transaction-type>
</session>
</enterprise-beans>
<assembly-descriptor>
<security-role>
<role-name>everyone</role-name>
</security-role>
<method-permission>
<description><![CDATA[description not supported yet by ejbdoclet]]></description>
<role-name>everyone</role-name>
<!--<unchecked/> -->
<method>
<ejb-name>MyLocalEJB</ejb-name>
<method-intf>Local</method-intf>
<method-name>*</method-name>
</method>
</method-permission>
</assembly-descriptor>
</ejb-jar>
==================================================================
5. jboss.xml -
<jboss>
<enterprise-beans>
<session>
<ejb-name> MyLocalEJB </ejb-name>
<local-jndi-name> MyLocalEJB </local-jndi-name>
</session>
</enterprise-beans>
</jboss>
==================================================================
Thanks,
satyajit