Hi, I am trying to access a remote stateless bean from a standalone client. I am using JBOSS application server.But I am getting the following exception:
javax.naming.CommunicationException [Root exception is java.io.InvalidClassException: org.jboss.ejb3.stateless.StatelessRemoteProxy; local class incompatible: stream classdesc serialVersionUID = 2583299153931800023, local class serialVersionUID = -9097306519795868]
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:723)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:588)
at javax.naming.InitialContext.lookup(InitialContext.java:351)
at com.ejb.bean.FirstEJB3TutorialClient.main(FirstEJB3TutorialClient.java:20)
where FirstEJB3TutorialClient.java is my client application running on a separate machine.
The code snippets for the various classes used are as follows:
BookTestBeanRemote interface:
@Remote
public interface BookTestBeanRemote {
public void testBook();
public void testCustomer();
public void testRelation();
}
BookTestBean class:
@Stateless
@RemoteBinding(jndiBinding="testBean")
public class BookTestBean implements BookTestBeanRemote {
@PersistenceContext
EntityManager em;
FirstEJB3TutorialClient class:
public class FirstEJB3TutorialClient {
public static void main(String[] args) {
try {
Properties properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
properties.put(Context.URL_PKG_PREFIXES,
"org.jboss.naming
rg.jnp.interfaces");
properties.put(Context.PROVIDER_URL, "10.0.5.243:1099");
Context context = new InitialContext(properties);
BookTestBeanRemote beanRemote = (BookTestBeanRemote) context
.lookup("testBean");
beanRemote.testBook();
where 10.0.5.243 is the IP address of the server where JBOSS server is running.
Can someone please help me out??
Thanks