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