Java EE is a mixed bag. It got started back in the dark days of "we should replace code with XML" so parts of it are incomprehensible configuration gibberish. It lived through the "abstract the abstractions" darks days so it has factories for factories and objects so completely abstracted that they must claim to do nothing at all. It seems like a lot of "EE" could be frozen for legacy apps and replaced with more modern libraries for new apps. RMI would be a good place to start since microservices are all the rage now.