alguém pode me dar uma luz??
package ejbAccess;
import java.rmi.RemoteException;
import java.util.Properties;
import javax.ejb.CreateException;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.rmi.PortableRemoteObject;
import ejb.home.CalculadoraHome;
import ejb.remote.CalculadoraRemote;
public class Acessando {
public static void main(String[] args) {
Properties prop = new Properties();
prop.put("java.naming.factory.initial",
"org.jnp.interfaces.NamingContextFactory");
prop.put(InitialContext.URL_PKG_PREFIXES,
"org.jboss.naming:org.jnp.interfaces");
prop.put(InitialContext.PROVIDER_URL, "jnp://localhost:1099");
InitialContext jndi;
try {
jndi = new InitialContext(prop);
Object ref = jndi.lookup("Add");
CalculadoraHome home = (CalculadoraHome) PortableRemoteObject
.narrow(ref, CalculadoraHome.class);
CalculadoraRemote calc = home.create();
System.out.println(calc.add(2, 2));
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (CreateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
[code]
public class CalculadoraBean implements SessionBean {
public float add(float a,float b){
return a+b;
}
@Override
public void ejbActivate() throws EJBException, RemoteException {
System.out.println("EJB ativado");
}
@Override
public void ejbPassivate() throws EJBException, RemoteException {
// TODO Auto-generated method stub
}
@Override
public void ejbRemove() throws EJBException, RemoteException {
// TODO Auto-generated method stub
}
@Override
public void setSessionContext(SessionContext arg0) throws EJBException,
RemoteException {
// TODO Auto-generated method stub
}
}[/code]
public interface CalculadoraHome extends EJBHome {
public CalculadoraRemote create() throws RemoteException,CreateException;
}
public interface CalculadoraRemote extends EJBObject {
public float add(float a,float b) throws RemoteException;
}
<ejb-jar version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">
<enterprise-beans>
<session>
<ejb-name>Add</ejb-name>
<home>ejb.home.CalculadoraHome</home>
<remote>ejb.remote.CalculadoraRemote</remote>
<ejb-class>ejb.beans.CalculadoraBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Bean</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>
Qusando eu executeo o main da classe Acessando ele informa:
[color=red]
Exception in thread “main” java.lang.ClassCastException
at com.sun.corba.se.impl.javax.rmi.PortableRemoteObject.narrow(Unknown Source)
at javax.rmi.PortableRemoteObject.narrow(Unknown Source)
at ejbAccess.Acessando.main(Acessando.java:32)
Caused by: java.lang.ClassCastException: org.jnp.interfaces.NamingContext cannot be cast to org.omg.CORBA.Object
… 3 more[/color]