For an action game, you'll want a library that supports synchronization (keeps the players positions' in sync across all the clients and the server). Of course, you'll also want basic messaging features. With this in mind, here are a couple of Java libraries that might work for you.
- SpiderMonkey. It's part of jME3, and I'm guessing it's one of the more popular networking libraries for jME. It supports sending and receiving messages, serialization, compression, synchronization via UDP, among other things. Also, it seems to be the standard networking library for jME games these days.
- JGN. It's basically like the other libraries, but it's more mature. It supports synchronization, and a bunch of other features like remote objects, shared objects, and streaming. Although it is no longer being actively developed and it's difficult to get support, it's quite a mature library.
- Kryonet. It supports RMI and basic messaging. The only problem with this is that it doesn't support synchronization, so it might be a little bit of a hassle. However, it seems to be quite active, so it might be more robust than the other options.
Just a note: It's probably better to have a server for each zone/map. With only one server JVM supporting the whole game, if anything goes wrong, the whole game will go down. If you have multiple JVMs running each zone/map server, one error won't bring down your entire game.