0

J2EE プログラミングの演習: Oracle のコンバーターの J2EE チュートリアルのサンプルのソース ファイルを変更し、JPA コードを入れて、GlassFish にデプロイしました

既存の ANT 構成を使用して、正しくコンパイルおよびデプロイしますが、実行時にシステムがpersistence.xmlを見つけられません。

これは、展開されたファイルの構造ですここに画像の説明を入力。問題を回避するために同じファイル xml をさらに配置しましたが、失敗しました。

server.logで、私は見つけます

原因: javax.persistence.PersistenceException: EntityManager という名前の test の持続性プロバイダーがありません

JPA は Glassfish でサポートされており (NoDefClassError の ClassnotFoundException を受け取っていません。クラスパスの問題はありません)、永続化の ID は一意であり、例外の原因となっている命令は次のとおりです。

Persistence.createEntityManagerFactory("test")

これは私のpersistence.xml構成です

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.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_1_0.xsd">
  <persistence-unit name="test" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>converter2.ejb.Converter2Bean</class>
    <class>entity.Order</class>
    <properties>
      <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/JPA"/>
      <property name="hibernate.connection.user" value="root"/>
      <property name="hibernate.connection.driver" value="com.mysql.jdbc.Driver"/>
      <property name="hibernate.connection.password" value="my_password"/>
      <property name="default-schema" value="JPA"/>
      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
      <property name="hibernate.hbm2ddl.import_files" value="C:\\mysql\\crea.sql"/>
    </properties>
  </persistence-unit>
</persistence>

私は入れます:

  • hibernate-testing.jar
  • hibernate3.jar
  • hibernate-jpa-2.0-api-1.0.1.Final.jar

ディレクトリ\glassfish3\glassfish\lib\dbで、Glassfish を再起動しました。どこが間違っていますか?

4

1 に答える 1

0

この問題は、Glassfish が Hibernate クラスを見つけられず、それらをドメイン フォルダーの下のlib/extフォルダー (例: /glassfish3/glassfish/domain/yourdomain/lib/ext ) に置き、Glassfish を再起動できないために発生します。

于 2013-02-05T13:39:19.113 に答える