PortableRemoteObject problems
marcelk1607 Jul 20, 2009 10:47 AMHello,
I have a simple Hello World bean and remote, but I cant get it to work.
I keep on getting a ClassCastException in my client with PortableRemoteObject.narrow
What am I missing here??
package nl.mkoopman.helloworld;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.rmi.PortableRemoteObject;
public class HelloWorldClient {
public static void main(String[] args) throws NamingException {
InitialContext context = getInitialContext();
java.lang.Object ref = context.lookup("HelloBean/remote");
HelloRemote helloRemote= (HelloRemote) PortableRemoteObject.narrow(ref, HelloRemote.class);
System.out.println("Hello World says: "+helloRemote.sayHello());
}
private static InitialContext getInitialContext() throws NamingException
{
Properties properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
properties.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
properties.put(Context.PROVIDER_URL, "jnp://localhost:1099");
return new InitialContext(properties);
}
}
package nl.mkoopman.helloworld;
import javax.ejb.Remote;
@Remote
public interface HelloRemote {
public String sayHello();
}
package nl.mkoopman.helloworld;
import javax.ejb.Stateless;
@Stateless
public class HelloBean implements HelloRemote {
@Override
public String sayHello() {
return "Hello!";
}
}
Exception in thread "main" java.lang.ClassCastException at com.sun.corba.se.impl.javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:229) at javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:137) at nl.mkoopman.helloworld.HelloWorldClient.main(HelloWorldClient.java:22) Caused by: java.lang.ClassCastException: javax.naming.Reference cannot be cast to org.omg.CORBA.Object at com.sun.corba.se.impl.javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:212) ... 2 more
16:30:17,257 INFO [SessionSpecContainer] Starting jboss.j2ee:jar=helloWorld.jar,name=HelloBean,service=EJB3 16:30:17,257 INFO [EJBContainer] STARTED EJB: nl.mkoopman.helloworld.HelloBean ejbName: HelloBean 16:30:17,269 INFO [JndiSessionRegistrarBase] Binding the following Entries in Global JNDI: HelloBean/remote - EJB3.x Default Remote Business Interface HelloBean/remote-nl.mkoopman.helloworld.HelloRemote - EJB3.x Remote Business Interface