K
Kimba
Hi all,
I have a slight problem, I try to create a reference Stateless
SessionBean but for some reason each time my client tries to access the
Bean after looking it up on JNDI I end up getting the following
exception:
Code:
Exception in thread "main" java.lang.NoClassDefFoundError:
[Lorg/jboss/aop/advice/Interceptor;
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2232)
at java.lang.Class.getDeclaredField(Class.java:1852)
at
java.ibjectStreamClass.getDeclaredSUID(ObjectStreamClass.java:1555)
at java.ibjectStreamClass.access$600(ObjectStreamClass.java:47)
at java.ibjectStreamClass$2.run(ObjectStreamClass.java:381)
at java.security.AccessController.doPrivileged(Native Method)
at java.ibjectStreamClass.<init>(ObjectStreamClass.java:373)
at java.ibjectStreamClass.lookup(ObjectStreamClass.java:268)
at java.ibjectStreamClass.initNonProxy(ObjectStreamClass.java:504)
at
java.ibjectInputStream.readNonProxyDesc(ObjectInputStream.java:1546)
at
java.ibjectInputStream.readClassDesc(ObjectInputStream.java:1460)
at
java.ibjectInputStream.readNonProxyDesc(ObjectInputStream.java:1546)
at
java.ibjectInputStream.readClassDesc(ObjectInputStream.java:1460)
at
java.ibjectInputStream.readNonProxyDesc(ObjectInputStream.java:1546)
at
java.ibjectInputStream.readClassDesc(ObjectInputStream.java:1460)
at
java.ibjectInputStream.readOrdinaryObject(ObjectInputStream.java:1693)
at java.ibjectInputStream.readObject0(ObjectInputStream.java:1299)
at
java.ibjectInputStream.defaultReadFields(ObjectInputStream.java:1912)
at
java.ibjectInputStream.readSerialData(ObjectInputStream.java:1836)
at
java.ibjectInputStream.readOrdinaryObject(ObjectInputStream.java:1713)
at java.ibjectInputStream.readObject0(ObjectInputStream.java:1299)
at java.ibjectInputStream.readObject(ObjectInputStream.java:339)
at java.rmi.MarshalledObject.get(MarshalledObject.java:135)
at
org.jnp.interfaces.MarshalledValuePair.get(MarshalledValuePair.java:72)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:652)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:587)
at javax.naming.InitialContext.lookup(InitialContext.java:351)
at com.kimbasoft.reference.ejb.client.MyClient.main(MyClient.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
Here is my source:
Remote Interface:
Code:
package com.kimbasoft.reference.ejb.session;
public interface TestRemote {
public String sayHelloRemote();
}
Local Interface:
Code:
package com.kimbasoft.reference.ejb.session;
public interface TestLocal {
public String sayHelloLocal();
}
Bean Implementation:
Code:
package com.kimbasoft.reference.ejb.session;
import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.ejb.Local;
@Stateless
@Local({TestLocal.class })
@Remote({TestRemote.class})
public class TestBean implements TestRemote {
public String sayHelloRemote() {
return "Hello Remote World!!!";
}
public String sayHelloLocal() {
return "Hello Local World!!!";
}
}
Client Implementation:
Code:
package com.kimbasoft.reference.ejb.client;
import com.kimbasoft.reference.ejb.session.TestRemote;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class MyClient {
public static void main(String[] args) {
Context ctx;
try {
ctx = new InitialContext();
TestRemote obj = (TestRemote) ctx.lookup("TestBean/remote");
System.out.println(">>" + obj.sayHelloRemote());
} catch (NamingException e) {
System.out.println("ERROR");
e.printStackTrace();
}
}
}
First I compile everything and package it into a JAR file. Then I
deploy it on JBoss. After deploying I check the JNDI content and can
see my TestBean and it's remote and local interface. Now I start the
client (I have the client JARs of JBoss in the path) on my local pc out
of a local copy of the JAR file I deployed on the server and then I get
the above mentioned exception. Can anybody help me and tell me what I'm
doing wrong???
Thanks,
Kimba
Configuration:
JBoss 4.0.4 GA
jboss-EJB-3.0_RC8-FD
JDK 1.5.0
I have a slight problem, I try to create a reference Stateless
SessionBean but for some reason each time my client tries to access the
Bean after looking it up on JNDI I end up getting the following
exception:
Code:
Exception in thread "main" java.lang.NoClassDefFoundError:
[Lorg/jboss/aop/advice/Interceptor;
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2232)
at java.lang.Class.getDeclaredField(Class.java:1852)
at
java.ibjectStreamClass.getDeclaredSUID(ObjectStreamClass.java:1555)
at java.ibjectStreamClass.access$600(ObjectStreamClass.java:47)
at java.ibjectStreamClass$2.run(ObjectStreamClass.java:381)
at java.security.AccessController.doPrivileged(Native Method)
at java.ibjectStreamClass.<init>(ObjectStreamClass.java:373)
at java.ibjectStreamClass.lookup(ObjectStreamClass.java:268)
at java.ibjectStreamClass.initNonProxy(ObjectStreamClass.java:504)
at
java.ibjectInputStream.readNonProxyDesc(ObjectInputStream.java:1546)
at
java.ibjectInputStream.readClassDesc(ObjectInputStream.java:1460)
at
java.ibjectInputStream.readNonProxyDesc(ObjectInputStream.java:1546)
at
java.ibjectInputStream.readClassDesc(ObjectInputStream.java:1460)
at
java.ibjectInputStream.readNonProxyDesc(ObjectInputStream.java:1546)
at
java.ibjectInputStream.readClassDesc(ObjectInputStream.java:1460)
at
java.ibjectInputStream.readOrdinaryObject(ObjectInputStream.java:1693)
at java.ibjectInputStream.readObject0(ObjectInputStream.java:1299)
at
java.ibjectInputStream.defaultReadFields(ObjectInputStream.java:1912)
at
java.ibjectInputStream.readSerialData(ObjectInputStream.java:1836)
at
java.ibjectInputStream.readOrdinaryObject(ObjectInputStream.java:1713)
at java.ibjectInputStream.readObject0(ObjectInputStream.java:1299)
at java.ibjectInputStream.readObject(ObjectInputStream.java:339)
at java.rmi.MarshalledObject.get(MarshalledObject.java:135)
at
org.jnp.interfaces.MarshalledValuePair.get(MarshalledValuePair.java:72)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:652)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:587)
at javax.naming.InitialContext.lookup(InitialContext.java:351)
at com.kimbasoft.reference.ejb.client.MyClient.main(MyClient.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
Here is my source:
Remote Interface:
Code:
package com.kimbasoft.reference.ejb.session;
public interface TestRemote {
public String sayHelloRemote();
}
Local Interface:
Code:
package com.kimbasoft.reference.ejb.session;
public interface TestLocal {
public String sayHelloLocal();
}
Bean Implementation:
Code:
package com.kimbasoft.reference.ejb.session;
import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.ejb.Local;
@Stateless
@Local({TestLocal.class })
@Remote({TestRemote.class})
public class TestBean implements TestRemote {
public String sayHelloRemote() {
return "Hello Remote World!!!";
}
public String sayHelloLocal() {
return "Hello Local World!!!";
}
}
Client Implementation:
Code:
package com.kimbasoft.reference.ejb.client;
import com.kimbasoft.reference.ejb.session.TestRemote;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class MyClient {
public static void main(String[] args) {
Context ctx;
try {
ctx = new InitialContext();
TestRemote obj = (TestRemote) ctx.lookup("TestBean/remote");
System.out.println(">>" + obj.sayHelloRemote());
} catch (NamingException e) {
System.out.println("ERROR");
e.printStackTrace();
}
}
}
First I compile everything and package it into a JAR file. Then I
deploy it on JBoss. After deploying I check the JNDI content and can
see my TestBean and it's remote and local interface. Now I start the
client (I have the client JARs of JBoss in the path) on my local pc out
of a local copy of the JAR file I deployed on the server and then I get
the above mentioned exception. Can anybody help me and tell me what I'm
doing wrong???
Thanks,
Kimba
Configuration:
JBoss 4.0.4 GA
jboss-EJB-3.0_RC8-FD
JDK 1.5.0