This week's book giveaway is in the Reactive Progamming forum. We're giving away four copies of Reactive Streams in Java: Concurrency with RxJava, Reactor, and Akka Streams and have Adam Davis on-line! See this thread for details.
I recommend making the server side speak to the client with JSON, not XML. So either a REST API using something like Spring REST MVC. Another option, but something new to learn is something like Vert.x which allows for http, sockets and web sockets to connect to a server. but still sending JSON back and forth.