codice:
import java.util.Properties;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.rmi.PortableRemoteObject;

import it.html.ejb.session.stateless.ServerTime;
import it.html.ejb.session.stateless.ServerTimeHome;




public class Main {

	public static void main(String[] args) throws java.rmi.RemoteException, NamingException {
	
	Properties props = new Properties();
	props.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");

	// La url dell'application server e la porta a cui risponde JNDI (default)

	props.put(Context.PROVIDER_URL,"jnp://localhost:1099");

	Context ctx = null;
	ctx = new InitialContext(props); 
	
	{
	ServerTimeHome sth = null;
	sth = (ServerTimeHome) PortableRemoteObject.narrow(ctx.lookup(ServerTimeHome.JNDI_NAME), ServerTimeHome.class);

	ServerTime st=sth.create();

	
	System.out.println("Data e ora: "+st.getTime());
	
	/* (non-Java-doc)
	 * @see java.lang.Object#Object()
	 */
	}
	public Main() {
		super();
	}

}
sto cercando di eseguire questo main che richiama bean in ambiente JBOSS.
Questa è la scermata di JOSS che fa vedere che il bean è attivo

codice:
08:47:30,611 INFO  [DLQ] Bound to JNDI name: queue/DLQ
08:47:30,781 INFO  [ConnectionFactoryBindingService] Bound ConnectionManager 'jb
oss.jca:service=ConnectionFactoryBinding,name=JmsXA' to JNDI name 'java:JmsXA'
08:47:31,001 INFO  [EjbModule] Deploying ServerTime
08:47:31,131 INFO  [BaseLocalProxyFactory] Bound EJB LocalHome 'ServerTime' to j
ndi 'local/ServerTime@20501244'
08:47:31,142 INFO  [ProxyFactory] Bound EJB Home 'ServerTime' to jndi 'ServerTim
e'
08:47:31,152 INFO  [EJBDeployer] Deployed: file:/C:/jboss-4.2.2.GA/server/defaul
t/deploy/StatelessSessionBean.jar
08:47:31,242 INFO  [TomcatDeployer] deploy, ctxPath=/jmx-console, warUrl=.../dep
loy/jmx-console.war/
08:47:31,472 INFO  [Http11Protocol] Starting Coyote HTTP/1.1 on http-127.0.0.1-8
080
08:47:31,492 INFO  [AjpProtocol] Starting Coyote AJP/1.3 on ajp-127.0.0.1-8009
08:47:31,512 INFO  [Server] JBoss (MX MicroKernel) [4.2.2.GA (build: SVNTag=JBos
s_4_2_2_GA date=200710221139)] Started in 27s:439ms
Quando vado a eseguire il main prendo questa eccezione e non so venirne fuori

codice:
java.lang.NoSuchMethodException: javax.ejb.EJBObject.getPrimaryKey()
	at java.lang.Class.getMethod(Class.java:1605)
	at org.jboss.proxy.ejb.GenericEJBInterceptor.<clinit>(GenericEJBInterceptor.java:75)
	at sun.misc.Unsafe.ensureClassInitialized(Native Method)
	at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:25)
	at sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:122)
	at java.lang.reflect.Field.acquireFieldAccessor(Field.java:918)
	at java.lang.reflect.Field.getFieldAccessor(Field.java:899)
	at java.lang.reflect.Field.getLong(Field.java:528)
	at java.io.ObjectStreamClass.getDeclaredSUID(ObjectStreamClass.java:1614)
	at java.io.ObjectStreamClass.access$700(ObjectStreamClass.java:52)
	at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:425)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:413)
	at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:310)
	at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:547)
	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583)
	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583)
	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
	at org.jboss.proxy.ClientContainer.readExternal(ClientContainer.java:156)
	at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
	at java.rmi.MarshalledObject.get(MarshalledObject.java:142)
	at org.jnp.interfaces.MarshalledValuePair.get(MarshalledValuePair.java:72)
	at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:710)
	at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627)
	at javax.naming.InitialContext.lookup(InitialContext.java:392)
	at Main.main(Main.java:34)
Exception in thread "main" java.lang.ExceptionInInitializerError
	at org.jboss.proxy.ejb.GenericEJBInterceptor.<clinit>(GenericEJBInterceptor.java:83)
	at sun.misc.Unsafe.ensureClassInitialized(Native Method)
	at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:25)
	at sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:122)
	at java.lang.reflect.Field.acquireFieldAccessor(Field.java:918)
	at java.lang.reflect.Field.getFieldAccessor(Field.java:899)
	at java.lang.reflect.Field.getLong(Field.java:528)
	at java.io.ObjectStreamClass.getDeclaredSUID(ObjectStreamClass.java:1614)
	at java.io.ObjectStreamClass.access$700(ObjectStreamClass.java:52)
	at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:425)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:413)
	at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:310)
	at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:547)
	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583)
	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583)
	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
	at org.jboss.proxy.ClientContainer.readExternal(ClientContainer.java:156)
	at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
	at java.rmi.MarshalledObject.get(MarshalledObject.java:142)
	at org.jnp.interfaces.MarshalledValuePair.get(MarshalledValuePair.java:72)
	at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:710)
	at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627)
	at javax.naming.InitialContext.lookup(InitialContext.java:392)
	at Main.main(Main.java:34)
Caused by: java.lang.NoSuchMethodException: javax.ejb.EJBObject.getPrimaryKey()
	at java.lang.Class.getMethod(Class.java:1605)
	at org.jboss.proxy.ejb.GenericEJBInterceptor.<clinit>(GenericEJBInterceptor.java:75)
	... 35 more
eccezione è su questa istruzione

codice:
sth = (ServerTimeHome) PortableRemoteObject.narrow(ctx.lookup(ServerTimeHome.JNDI_NAME), ServerTimeHome.class);
il programma è tratto dalla lezione 8 del corso j2ee del sito jva.html.it
ringrazio tutti in anticipo per le indicazioni per la soluzione del proplema che mi darete.
error