I am a junior programmer and was asked to develop an application that should utilize the Java Persistence API (JPA).
Which is the most popular JPA implementation (Hibernate, Toplink, EclipseLink)
Can I use any of the above with Apache Tomcat or every implementation is tied to a specific server application ?
Are there any good introductory books or tutorials for this subject ?
That depends. Both solutions work but each has made their own design decisions and depending on you, those might work in your favor or against it.
So I suggest to implement a simple but complete prototype using both technologies (spend a week with each) to learn which one suits you better. Complete means: Implement each use case that you know you'll need, especially a complicated one.
As a guideline, I've found that Hibernate has more features but Eclipse Link gives you better error messages -> I spent less time fixing problems with Link.
On the other hand, Hibernate has more features built in, so I spent less time there to turn requirements into code - when I could find the feature, understand how it works and I didn't run into some odd error message that just left me stumped and running in circles for a couple of days.
Eclipse Link was once a commercial product, so the documentation is better.