Wednesday, March 31, 2010

Mismatched serialization UIDs minor code 89A

Recently I was trying to run MyFaces TomaHawk examples under IBM WebSphere WAS 7.0 in RAD 7.5 environment. The set of examples were available as a WAR file at the Apache MyFaces Tomahawk downloads site. I imported the WAR file into my workspace without any issues. However when I tried to publish the application to the server, it would not deploy. I was noticing the following error -
Application Failed to Start. myfaces-example-simple-1.1.9EAR
java.rmi.MarshalException: CORBA MARSHAL 0x4942f89a No; nested exception is:

org.omg.CORBA.MARSHAL: Unable to read value from underlying bridge : Mismatched serialization UIDs : Source (RepId RMI:java.lang.Throwable:F8678B4F4D2EB705:D5C635273977B8CB) = D5C635273977B8CB whereas Target (RepId RMI:com.ibm.ws.webcontainer.exception.WebAppNotLoadedException:2E921E9DEB124A7F:2D33383134313233) = 2D33383134313233 vmcid: IBM minor code: 89A completed: No


When I tried Google Search, there just were too many hits. The one that I found relevant to my situation was the mismatch between configuration files and my intended deployment environment. I intended to use J2EE 5.0, Servlet container 2.5 and JSF 1.2 versions. However the imported examples WAR file was using Servlet container 2.4 and JSF 1.0 versions. Once I made the "web-app" tag in web.xml to conform to Servlet container 2.5 specification and "faces-config" tag in Faces Configuration files to JSF 1.2 version, the problem went away. It was an easy fix but finding the issue was hard. Phew!