안녕하세요, 저는 Javaee, JPA를 사용하여 첫 번째 심각한 웹 응용 프로그램을 만드는 중입니다./Hibernate, MySQL, Maven 및 IntelliJ. SessionFactory를 사용할 때 모든 것은 괜찮 았지만 대신 EntityManager를 사용하기로 결정했습니다. 하루 종일 버그를 고치려고했지만이 문제를 해결할 수는 없습니다.요청한 서비스를 만들 수 없습니다. (EntityManager를 사용하려고 시도합니다)
새 행을 추가하려고 할 때 오류가 있습니다 또한 IntelliJ에 콘솔에서
javax.persistence.PersistenceException: Unable to build entity manager factory
org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:66)
javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
domain.CarDAO.<init>(CarDAO.java:8)
controller.CarToDbServlet.doPost(CarToDbServlet.java:17)
와 : 내 웹 애플리케이션을 통해 데이터베이스에
public class CarDAO {
private EntityManagerFactory emf = Persistence.createEntityManagerFactory("JPAPersistUnit");
private List<Car> carList = new ArrayList<>();
public void addCar(Car car) {
EntityManager em = emf.createEntityManager();
EntityTransaction trans = em.getTransaction();
try {
trans.begin();
em.persist(car);
trans.commit();
} catch (Exception ex) {
if(trans != null) {trans.rollback();}
ex.printStackTrace();
} finally {
em.close();
}
}
:
Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
Caused by: org.hibernate.exception.JDBCConnectionException: Error calling DriverManager#getConnection
Caused by: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/carent?useSSL=false&serverTimezone=UTC
이 내 CarDAO 클래스입니다
<?xml version="1.0" encoding="UTF-8"?>
<persistence 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" version="2.1">
<persistence-unit name="JPAPersistUnit" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<class>domain.Car</class>
<class>domain.Customer</class>
<class>domain.Orders</class>
<properties>
<property name="javax.persistence.jdbc.Driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/carent?useSSL=false&serverTimezone=UTC"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="root"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
<property name="hibernate.hbm2ddl.auto" value="create"/>
<property name="hibernate.format_sql" value="true"/>
</properties>
</persistence-unit>
</persistence>
이는 pom.xml 파일 내 의존성은 다음과 같습니다 :
이것은 persistence.xml 파일입니다
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.12.Final</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.1-api</artifactId>
<version>1.0.0.Final</version>
<scope>provided</scope>
</dependency>
</dependencies>
내가 여기 솔루션을 찾고 있었다, 나는 몇 가지 유사한 주제를 찾았지만 따라 그들에게는 모든 것이 제 코드로 괜찮은 것 같습니다. 어쩌면 이것이 IntelliJ의 문제일까요? 이 제이보스 뭔가
org.dom4j.DocumentFactory cannot be cast to org.dom4j.DocumentFactory
가 :하지만 난이 오류가 ... 내가 최대 절전 모드 코어의 제공 범위를 삭제하는 경우 및 최대 절전 모드에서 JPA를 문제없이 내 DB와 연결되는 데이터 소스를 추가?
:(
배치에'org.dom4j.DocumentFactory'가있는 라이브러리가 포함 된 것처럼 보입니다. 또한 수동으로 컨테이너를 생성하는 대신 컨테이너로 관리되는'EntityManager'를 사용할 것을 제안합니다. –