Caros,
venho varios exemplo referente EJB usando session
na hora de chamar o metodo via Local não venho nenhum
se alguem puder me ajudar queria um exemplo ou ajuda
para chamar metodo Local sem ser remoto.
agradeço…
Interfaces Locais
package examples;
/**Interface que os clientes operam quando interagem com
o objetos EJB Locais */
public interface ContadorLocal extends
javax.ejb.EJBLocalObject{
public int contador();
}
--
package examples;
/**Interface que os clientes operam quando interagem com o
objetos HOME Local criado pelas ferramentas do contêiner */
public interface ContadorLocalHome extends
javax.ejb.EJBLocalHome{
ContadorLocal create(int val) throws
javax.ejb.CreateException;
}
--
package examples;
import javax.ejb.SessionContext;
public class ContadortBean implements javax.ejb.SessionBean {
private SessionContext sessionContext;
public int val;
public int count() {
System.out.println("count() chamado");
return ++val;
}
public void ejbCreate(int val) throws CreateException {
this.val = val;
System.out.println("ejbCreate(val) chamado");
}
public void ejbRemove() {
System.out.println("ejbRemove() chamado");
}
public void ejbActivate() {
System.out.println("ejbActivate() chamado");
}
public void ejbPassivate() {
System.out.println("ejbPassivate() chamado");
}
public void setSessionContext(SessionContext ctx) {
this.sessionContext = ctx;
}
}
--ejb-jar.xml
<ejb-jar>
<enterprise-beans>
<session>
<ejb-name>Contador</ejb-name>
<home>examples.ContadorHome</home>
<remote>examples.Contador</remote>
<local-home>examples.ContadorLocalHome</local-home>
<local>examples.ContadorLocal</local>
<ejb-class>examples.ContadorBean</ejb-class>
<session-type>Stateful</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>
--main
public class ContadorClient {
public static void main(String[] args) throws Exception {
Hashtable prop = new Hashtable();
prop.put(InitialContext.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
prop.put(InitialContext.PROVIDER_URL,"jnp://localhost:1099");
Context ctx = new InitialContext(prop);
Object obj = ctx.lookup("Contador");
ContadorHome home = (ContadorHome)
javax.rmi.PortableRemoteObject.narrow(
obj, ContadorHome.class);
Contador cont = home.create(0);
System.out.println(cont.contador());
Thread.sleep(1000);
System.out.println(cont.contador());
cont.remove();
}
}
---
<jboss>
<unauthenticated-principal>nobody</unauthenticated-principal>
<enterprise-beans>
<session>
<ejb-name>Contador</ejb-name>
<jndi-name>Contador</jndi-name>
</session>
</enterprise-beans>
<resource-managers> </resource-managers>
</jboss>