Я пытаюсь создать приложение JPA, и у меня возникают проблемы при тестировании, если оно подключается к базе данных MySQL на сервере MySQL.
Это ошибка:
Exception in thread "main" java.lang.NoClassDefFoundError: org/dom4j/DocumentException
at org.hibernate.ejb.Ejb3Configuration.<clinit>(Ejb3Configuration.java:153)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:57)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:78)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
at com.javawebtutor.JPATest.main(JPATest.java:13)
Caused by: java.lang.ClassNotFoundException: org.dom4j.DocumentException
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 5 more
Это в моемpersistence.xml: я также пытался использовать hibernate вместо javax.persistence.jdbc
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="ProjekatV2" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>com.javawebtutor.Pacijent</class>
<class>com.javawebtutor.Intervencija</class>
<class>com.javawebtutor.BolnickaSoba</class>
<class>com.javawebtutor.MedicinskiRadnik</class>
<class>com.javawebtutor.Smena</class>
<class>com.javawebtutor.Vozac</class>
<class>com.javawebtutor.Vozilo</class>
<class>com.javawebtutor.Zahtev</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://127.0.0.1:33060/infosys15495" />
<property name="javax.persistence.jdbc.user" value="root" />
<property name="javax.persistence.jdbc.password" value="root" />
</properties>
</persistence-unit>
</persistence>
И это мой тестовый класс:
package com.javawebtutor;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class JPATest {
private static EntityManager em;
public static void main(String[] args) {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("ProjekatV2");
em = emf.createEntityManager();
createPacijent("Sladjana", "Nikolic", 1276948354);
em.close();
emf.close();
}
private static void createPacijent(String name, String surname, long brknji) {
em.getTransaction().begin();
Pacijent pac = new Pacijent(name, surname, brknji);
em.persist(pac);
em.getTransaction().commit();
}
}
Я ПОЛУЧИЛ РЕШЕНИЕ: мне пришлось изменить постоянствоЗаголовок .xml:
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
- Спасибо, Джозеф!