Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » EclipseLink » serialUID mismatch on remote EJB call
serialUID mismatch on remote EJB call [message #842381] Thu, 12 April 2012 08:40 Go to next message
Ga'bor Pe'ntek is currently offline Ga'bor Pe'ntekFriend
Messages: 16
Registered: July 2009
Junior Member
Hi,

I have been writing some tests for an EJB3 bean when I discovered this problem. The test ought to be simple:

* create an entity manager
* get an object from the database
* call ejb with the object as parameter
* verify the result

however the ejb call resulted in an EOF exception caused by serialVersionUID mismatch of ObjectDefinition.


javax.ejb.EJBException: ; nested exception is: 
	java.io.EOFException; nested exception is: java.io.EOFException
java.io.EOFException
	at weblogic.rjvm.t3.MuxableSocketT3.endOfStream(MuxableSocketT3.java:345)
	at weblogic.socket.SocketMuxer.deliverExceptionAndCleanup(SocketMuxer.java:826)
	at weblogic.socket.SocketMuxer.deliverEndOfStream(SocketMuxer.java:760)
	at weblogic.socket.SocketMuxer.readReadySocketOnce(SocketMuxer.java:941)
	at weblogic.socket.SocketMuxer.readReadySocket(SocketMuxer.java:888)
	at weblogic.socket.JavaSocketMuxer.processSockets(JavaSocketMuxer.java:339)
	at weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:29)
	at weblogic.work.ExecuteRequestAdapter.execute(ExecuteRequestAdapter.java:21)
	at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145)
	at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117)
javax.ejb.EJBException: ; nested exception is: 
	java.io.EOFException; nested exception is: java.io.EOFException
	at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.unwrapRemoteException(RemoteBusinessIntfProxy.java:121)
	at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBusinessIntfProxy.java:96)
	at $Proxy0.getReportToInsure(Unknown Source)
	at com.***.report.GetReportTest.testGetReport(GetReportTest.java:88)
	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:597)
	at junit.framework.TestCase.runTest(TestCase.java:168)
	at junit.framework.TestCase.runBare(TestCase.java:134)
	at junit.framework.TestResult$1.protect(TestResult.java:110)
	at junit.framework.TestResult.runProtected(TestResult.java:128)
	at junit.framework.TestResult.run(TestResult.java:113)
	at junit.framework.TestCase.run(TestCase.java:124)
	at junit.framework.TestSuite.runTest(TestSuite.java:243)
	at junit.framework.TestSuite.run(TestSuite.java:238)
	at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.io.EOFException
	at weblogic.rjvm.t3.MuxableSocketT3.endOfStream(MuxableSocketT3.java:345)
	at weblogic.socket.SocketMuxer.deliverExceptionAndCleanup(SocketMuxer.java:826)
	at weblogic.socket.SocketMuxer.deliverEndOfStream(SocketMuxer.java:760)
	at weblogic.socket.SocketMuxer.readReadySocketOnce(SocketMuxer.java:941)
	at weblogic.socket.SocketMuxer.readReadySocket(SocketMuxer.java:888)
	at weblogic.socket.JavaSocketMuxer.processSockets(JavaSocketMuxer.java:339)
	at weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:29)
	at weblogic.work.ExecuteRequestAdapter.execute(ExecuteRequestAdapter.java:21)
	at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145)
	at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117)



After creating the parameter object by hand instead of retrieving it from the db, the ran fine. It seems that the persistence metadata is also serialized and sent to the server.

I tried to call entityManager.clear() after loading the parameter but that did not help either.

Regards,
Gábor
Re: serialUID mismatch on remote EJB call [message #846656 is a reply to message #842381] Mon, 16 April 2012 14:27 Go to previous messageGo to next message
James Sutherland is currently offline James SutherlandFriend
Messages: 1939
Registered: July 2009
Location: Ottawa, Canada
Senior Member

Very odd.

Do you have two different versions of the class on the client vs server?


James : Wiki : Book : Blog : Twitter
Re: serialUID mismatch on remote EJB call [message #847336 is a reply to message #846656] Tue, 17 April 2012 07:58 Go to previous messageGo to next message
Ga'bor Pe'ntek is currently offline Ga'bor Pe'ntekFriend
Messages: 16
Registered: July 2009
Junior Member
No. Both projects are built with maven and the dependencies are the same in the two project. One thing I can think about is that the weblogic server loads its own implementation somehow. The other thing is, I did not find any serialVersionUID filed in DatabaseObjectDefinition, so I it is generated automatically by the jvm but as far as I know that is a compile time operation.
Re: serialUID mismatch on remote EJB call [message #849822 is a reply to message #847336] Thu, 19 April 2012 13:31 Go to previous message
James Sutherland is currently offline James SutherlandFriend
Messages: 1939
Registered: July 2009
Location: Ottawa, Canada
Senior Member

Can you try disabling weaving and see if you still get the same error.

Also try setting a serialVersionUID.

It could also be a class loader issue, try to simplify how you are deploying things.


James : Wiki : Book : Blog : Twitter
Previous Topic:ClassDescriptor.getTable() NULL
Next Topic:Unable to create query.
Goto Forum:
  


Current Time: Fri Dec 19 07:20:54 GMT 2014

Powered by FUDForum. Page generated in 0.13686 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software