ObjectMessage is an interface that SpyObjectMessage implements. So. don't worry, SpyObjectMessage is a ObjectMessage.
The problem is that the ObjectMessage holds a serialized object that cannot be unserialized. Probably because the class cannot be loaded by the classloader that the MDB is using. Try putting the jar that has the class that is being carried by the ObjectMessage in the ear file that the MDB was deployed with.