You should get familiar with the languages, technologies, and techniques that you need right now to get the job done or that are called out in a job posting. There's no one, ultimate technology stack that you should learn to, in your case, develop client/server applications in Java. You should also learn the underlying concepts of developing distributed systems that are applicable across languages, frameworks, and technologies.
You should never tie yourself to a particular technology. Those change all the time. Instead, focus on learning, continuous improvement and development, and problem solving techniques that can be applied to any situation or job. The act of learning new technology is, by itself, an improvement, even if it's not immediately relevant. I've found that by learning something, I get better at learning in general and can more rapidly pick up and use new technologies.
The easiest way to learn something new is to read, practice, and do. First, read the documentation and find out where to go for information. Then, practice with the tutorials or simple problems to get your feet wet. Finally, do something of a meaningful scale, such as implement (or reimplement) a personal project or contribute to an open-source project. Ask questions along the way and never take anything for granted.