I've tryed also the following, I hope it is more informative:
Object obj = ctx.lookup( "ejb/myPackage/mySessionBeanHome" );
Class c = obj.getClass();
System.out.println("Methods:");
for (int i=0; i<c.getMethods().length; i++)
System.out.println(i+ ")"+ c.getMethods()[i].getName());
System.out.println("Fields:");
for (int i=0; i<c.getFields().length; i++)
System.out.println(i+ ")"+ c.getFields()[i].getName());
System.out.println("Constructors:");
for (int i=0; i<c.getConstructors().length; i++)
System.out.println(i+ ")"+ c.getConstructors()[i].getName());
javax.rmi.PortableRemoteObject.narrow( obj, mySessionBeanHome.class );
And I get the following result:
Methods:
0)_ids
1)hashCode
2)equals
3)toString
4)connect
5)_get_codebase
6)_get_delegate
7)_set_delegate
8)_duplicate
9)_release
10)_is_a
11)_is_equivalent
12)_non_existent
13)_hash
14)_request
15)_create_request
16)_create_request
17)_get_interface_def
18)_orb
19)_get_policy
20)_get_domain_managers
21)_set_policy_override
22)_is_local
23)_servant_preinvoke
24)_servant_postinvoke
25)_request
26)_invoke
27)_releaseReply
28)getClass
29)notify
30)notifyAll
31)wait
32)wait
33)wait
Fields:
Constructors:
0)org.omg.stub.java.rmi._Remote_Stub
Exception in thread "P=874250

=0:CT" java.lang.ClassCastException: cannot cast class org.omg.stub.java.rmi._Remote_Stub to interface myPackage.mySessionBeanHome
at com.ibm.rmi.javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:409)
at javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:156)
at myPackage.MyClient.main(MyClient.java:73)