Hello, I am relativly new to Enterprise development and especially EJB3, I have
looked everywhere over the internet for a solution to this but to no avail. I'm
using JBoss 4.2.2GA. Anyway, I deploy my entity and session beans properly and
I verify that my session bean has started in Jboss's console.
************
So my session bean is :
| package com;
| import javax.ejb.Stateless;
| import javax.persistence.EntityManager;
| import javax.persistence.PersistenceContext;
| import java.io.Serializable;
| import com.EntityDB;
| @Stateless
| public class MainSessionBean implements Serializable, SessionBeanRemote{
| @PersistenceContext
| private EntityManager em;
| static final long serialVersionUID = -5951007355563165335L;
|
| public void setToDB(String in1, String in2)
| {
| EntityDB edb = new EntityDB();
| edb.setName(in1);
| edb.setPassword(in2);
| em.persist(edb);
| }
| }
**********************
And its interface is
| package com;
| import javax.ejb.Remote;
| import java.io.Serializable;
| @Remote
| public interface SessionBeanRemote extends Serializable{
| static final long serialVersionUID = -1145492871624366669L;
|
| public void setToDB(String in1, String in2);
|
| }
*******************
my client code is
| package test;
| import java.util.Properties;
| import javax.naming.Context;
| import javax.naming.InitialContext;
| import javax.naming.NamingException;
| import com.SessionBeanRemote;
| import java.io.Serializable;
| public class MainTestClient implements Serializable{
|
| static final long serialVersionUID = -3849529018242856585L;
|
| public static void main(String[] args) {
|
| Properties properties = new Properties();
| properties.put("java.naming.factory.initial",
| "org.jnp.interfaces.NamingContextFactory");
| properties.put("java.naming.factory.url.pkgs",
| "=org.jboss.naming:org.jnp.interfaces.jnp");
| properties.put("java.naming.provider.url", "localhost:1099");
| Context context=null;
| try {
| context = new InitialContext(properties);
| Object o= context.lookup("MainSessionBean/remote");
| Object j = null;
| SessionBeanRemote beanRemote = (SessionBeanRemote)j;
| beanRemote.setToDB("myUser","myPswrd");
|
| } catch (NamingException e) {
| e.printStackTrace();
| throw new RuntimeException(e);
| }
| System.out.println("finished");
| }
| }
*****************************
whenever i run the client i get the exception
| javax.naming.CommunicationException [Root exception is
java.io.InvalidClassException: org.jboss.ejb3.remoting.BaseRemoteProxy; local
class incompatible: stream classdesc serialVersionUID = -2711693270411201590,
local class serialVersionUID = 1126421850898582900]
| at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:722)
| at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:587)
| at javax.naming.InitialContext.lookup(Unknown Source)
| at test.MainTestClient.main(MainTestClient.java:30)
| Caused by: java.io.InvalidClassException:
org.jboss.ejb3.remoting.BaseRemoteProxy; local class incompatible: stream
classdesc serialVersionUID = -2711693270411201590, local class serialVersionUID
= 1126421850898582900
| at java.io.ObjectStreamClass.initNonProxy(Unknown Source)
| at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
| at java.io.ObjectInputStream.readClassDesc(Unknown Source)
| at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
| at java.io.ObjectInputStream.readClassDesc(Unknown Source)
| at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
| at java.io.ObjectInputStream.readClassDesc(Unknown Source)
| at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
| at java.io.ObjectInputStream.readObject0(Unknown Source)
| at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
| at java.io.ObjectInputStream.readSerialData(Unknown Source)
| at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
| at java.io.ObjectInputStream.readObject0(Unknown Source)
| at java.io.ObjectInputStream.readObject(Unknown Source)
| at java.rmi.MarshalledObject.get(Unknown Source)
| at org.jnp.interfaces.MarshalledValuePair.get(MarshalledValuePair.java:72)
| at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:652)
| ... 3 more
|
I apologize for the large nature of this post, but ive been dealing with this
problem for several days now. The interesting things i have found is that even
if i do not place the serialVersionUID's into all the classes i recieve the
same exception. If i try to run this code on another machine running Jboss
4.2.2GA as well i get the same values, and if i try and make another project
with similar code i get the same Error with the same serialVersionUID's, Im
sure that is important but i cannot figure out what could be going wrong.
Thanks in advance for any responses
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4127164#4127164
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4127164
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user