2011-01-31 12 views
3

EclipseLinkに問題があります。私はGlassFish v3.1を使用しています。私は、永続化レイヤにEclipseLinkを使用しようとしています。 Eclipse Wikiで利用できるチュートリアルをすべて運んでいた。私のpersistence.xmlファイルを解析できないとのEntityManagerFactoryを作成しようとしているときに、私はこのエラーが表示されます。EclipseLinkをOSGIにバンドルpersistence.xmlが見つかりません

org.eclipse.persistence.exceptions.PersistenceUnitLoadingExceptionを 例外説明:URLからのpersistence.xmlの処理中に例外がスローされました:バンドル://307.1:ここでは1/

は、/ WEB-INF /クラス/ META-INF /にある私のpersistence.xmlのです:

<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="generic"> 
     <class>com.generic.domain.Service</class> 

     <properties> 
      <!-- Embedded MySQL Login --> 
      <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/> 
      <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306"/> 

      <!-- TODO: replace with connection pool --> 
      <property name="javax.persistence.jdbc.userid" value="root"/> 
      <property name="javax.persistence.jdbc.password" value=""/> 

      <property name="eclipselink.target-database" value="MySQL"/> 
      <property name="eclipselink.jdbc.read-connections.min" value="1"/> 
      <property name="eclipselink.jdbc.write-connections.min" value="1"/> 
      <property name="eclipselink.jdbc.batch-writing" value="JDBC"/> 

      <!-- Logging Settings --> 
      <property name="eclipselink.logging.level" value="FINE" /> 
      <property name="eclipselink.logging.thread" value="false" /> 
      <property name="eclipselink.logging.session" value="false" /> 
      <property name="eclipselink.logging.exceptions" value="true" /> 
      <property name="eclipselink.logging.timestamp" value="false"/>    
     </properties> 
    </persistence-unit> 
</persistence> 

私は私のマニフェストに次の行を追加しました。 MF:

JPA-PersistenceUnits: generic 

答えて

0

1)WABからOSGi/JPAを使用しようとしているようです。正しい? 2)システムに新しいeclipselinkバンドルがインストールされているかどうか確認できますか?もしそうなら、彼らは何ですか? 3)スタックトレースを提供できますか?

+0

1)true 2)GlassFish v3.1で利用可能なEclipseLinkバンドルを使用しています 3)スタックトレース:http://dinoz.mobi/stack.txt – MobileSam

+0

1.次の構造を教えてください。あなたのWAB? 2. WABのバンドルクラスパスを教えてください。 – Sahoo

+0

- META-INF/MANIFEST.MF - WEB-INF/web.xmlの - WEB-INF /クラス/ COM/... - WEB-INF /クラス/ META-INF/persistence.xmlの - SRC/main/test/java バンドルクラスパス:WEB-INF/classes WABのWEB-INF/classes/META-INF /の下にpersistence.xmlがあります。ご協力いただきありがとうございます。 – MobileSam

1

これで、EclipseLinkのバグであることが確認できました。問題を回避するには、Persistence.createEntityManagerFactory()を実行する代わりに、JNDIルックアップまたは@PersistenceUnitを使用してEntityManagerFactoryを取得する必要があります。

+0

フィードバックをありがとう、私は@PersistenceUnitを使用するとき、私はそれが必要なときに私のサーブレットにEntityManagerが注入されていませんが、何かがそれを保持することができます前に一度問題があります。 私はJerseyのRESTFulサービスの実装を使用しています。ご協力いただきありがとうございます。 – MobileSam