I think this has be pretty well roundly rejected by Tim even for Vert.x 3 (see the json serialization thread going on right now), and I agree with him. Obviously it's possible if both the sending and receiving side are Java verticles, but there's no way to impose such a restriction. Supporting arbitrary Java objects on the event bus would eliminate one of Vert.x's primary features by forcing both sides to be implemented in Java, and that's something Vert.x is not prepared to give up. You may argue that that should be up to the user, and that's a valid point. But the goal is to provide the same feature set in all supported languages.
There is a lot of discussion going on about Vert.x 3's event bus and serialization, so feel free to weigh in. It may be possible that arbitrary objects can be supported by the event bus, but I think that would be only *if all languages support deserialization and usage* of said objects - perhaps by providing a custom serialization API in each language - but that may not even happen.
I think you share your experience, concerns, and suggestions on the serialization thread. But keep in mind the reasons why it isn't currently supported. Tim and the others will surely weigh in.
Jordan Halterman