As someone who started using Java at 0.92 (seriously) and have gone through all flavours of J2EE up to, and including server faces, I can honestly say that I find little to no value from a large amount of the J2EE stack, including the over reliance on application containers it brings. The JVM is a good platform for services, but a vanilla embedded servlet container gets you a long way. You should also look at what things like spring-boot and dropwizard can get you too.
You could of course mix and match. If you had existing JEE apps, but wanted to build some smaller, lighter-weight components, you could integrate them together. If you are using things like EJBs for comms though expect pain, as the underlying serialisation protocols are IMHO not great when you want services to evolve independently from each other.
On the polyglot side of things, microservices allow you to be polyglot, but do not enforce it (or require it). There is value in having a standard platform, as it allows you to reuse useful tooling and code. At Netflix for example, all communication over networks is done by JVM-based services as they have invested in making things like Ribbon, Eureka and Hystrix to ensure their system is stable and scalable. Other language stacks are in use (e.g. Node) but only as 'sidecars' (more on a blog post at netflix's tech blog, although their images seem broken)