Si sta tentando di impostare un progetto JPA standalone. Per fare ciò è necessario un barattolo di provider JPA. I due più popolari provider sono Eclipselink e Hibernate. Se stai usando Maven puoi aggiungere dipendenze alle loro implementazioni.
Per EclipseLink
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.5.1</version>
</dependency>
per Hibernate
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.6.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.3.6.Final</version>
</dependency>
Se non si utilizza Maven è possibile scaricare le loro implementazioni dai loro siti e metterlo nel classpath.
Alcune Quickstarts JPA raccomandano di aggiungere solo l'API JPA (dichiarazioni di interfaccia solo) dipendenze con Maven.
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
<version>2.1.0</version>
</dependency>
o
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.1-api</artifactId>
<version>1.0.0.Final</version>
</dependency>
Questo approccio avrà successo solo in ambiente server come server fornirà adeguata implementazione in fase di esecuzione.
controllare se tutti i barattoli richiesti sono in classpath. – Adi
'Persistenza' e' EntityManagerFactory' normalmente sono forniti dallo stesso jar (ad es. Javaee-api-7.0.jar), puoi dirci quale stai usando? – Thomas
Quale provider JPA stai utilizzando? Stai eseguendo standalone o in un contenitore (JEE)? Se indipendente, confrontare il percorso di classe (runtime) con il percorso di generazione per trovare i jj mancanti nel classpath. – JimmyB