Java as a language is totally fine! It has everything one might need. The culture totally sucks. Oracle leads the march toward what is the "standard". Jersey is a great leap out of this.
Java also lacks the ability to say something like:
class Foo<T> implements ISerializable iff T implements ISerializable
So you end up having to work only with T's that are serializable, or not having the instance for Foo.Also, Java lacks type-classes.
Java also lacks lazy bindings, and many other useful features one might need.
In short, Java is still very far from having everything one might need...