sto cercando di eseguire questo main che richiama bean in ambiente JBOSS.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(); } }
Questa è la scermata di JOSS che fa vedere che il bean è attivo
Quando vado a eseguire il main prendo questa eccezione e non so venirne fuoricodice: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
eccezione è su questa istruzionecodice: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
il programma è tratto dalla lezione 8 del corso j2ee del sito jva.html.itcodice:sth = (ServerTimeHome) PortableRemoteObject.narrow(ctx.lookup(ServerTimeHome.JNDI_NAME), ServerTimeHome.class);
ringrazio tutti in anticipo per le indicazioni per la soluzione del proplema che mi darete.
error

Rispondi quotando