0

Glassfish でこの Web プロジェクトをセットアップしていましたが、問題が発生したため、Tomcat に移行することにしました。

しかし、今私の永続化クラスは次のエラーをスローしています

Caused by: javax.persistence.PersistenceException: No Persistence provider for EntityManager named JetCarBd

persistence.xml を別のフォルダーに配置しようとしましたが、うまくいきませんでした。

persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<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">
<persistence-unit name="JetCarBd" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>br.com.jetcar.entity.Cliente</class>
<class>br.com.jetcar.entity.Endereco</class>
<class>br.com.jetcar.entity.Veiculo</class>
<class>br.com.jetcar.entity.Aluguel</class>
<class>br.com.jetcar.entity.Venda</class>
<class>br.com.jetcar.entity.Interesse</class>
<class>br.com.jetcar.entity.Funcionario</class>
<class>br.com.jetcar.entity.ItensAluguel</class>
<class>br.com.jetcar.entity.AcessorioAluguel</class>
<class>br.com.jetcar.entity.TestDrive</class>
<class>br.com.jetcar.entity.AcessorioVeiculo</class>
<class>br.com.jetcar.entity.Acessorio</class>
<class>br.com.jetcar.entity.Oficina</class>
<class>br.com.jetcar.entity.Manutencao</class>
<class>br.com.jetcar.entity.Reserva</class>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
  <property name="javax.persistence.jdbc.url"  value="jdbc:postgresql://localhost:5432/jetcar"/>
  <property name="javax.persistence.jdbc.password" value="postgres"/>
  <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver"/>
  <property name="javax.persistence.jdbc.user" value="postgres"/>
 </properties>
  </persistence-unit>
</persistence>

ConnectionUtil.java

package br.com.jetcar.connection;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

/**
 * @author Jorge Oliveira
 */
public class ConnectUtil {

private  final EntityManagerFactory emf;

public ConnectUtil(){
    emf = Persistence.createEntityManagerFactory("JetCarBd");
}

public EntityManager getEntityManager() {
    return emf.createEntityManager();
}


}

私のpersistence.xmlはsrc/META-INFの下にあります

4

1 に答える 1

1

ここでいくつかのことを確認できます。

  1. アプリケーションをデプロイしたら、persistence.xml が次の場所にあることを確認してください。

WEB-INF/classes/META-INF フォルダ

  1. プロバイダー (eclipse jpa) jar は、ビルド パスの Eclipse Env のクラスパスにあり、デプロイされたアプリケーションで利用できるかどうかも確認します。
于 2012-04-23T18:16:27.993 に答える