2011-01-26 24 views
0

私はJPAで私の最初の時間をしようとしています、と私は、サーバーの実行時に、私はこの例外を取得jboss5.1.x EJB3.0にJPA減速例外

を使用しています:

java.lang.IllegalArgumentException: Can't find a persistence unit named 'java:/mracDS' 

を..

これは、すべてのJPAエンティティに責任がある私の「DAO」の実体である:

@Stateless 
    public class ECMSEntityManagerDao implements ECMSEntityManagerDaoLocal, ECMSEntityManagerDaoRemote 
    { 
    @PersistenceContext(unitName = "java:/mracDS") 
    EntityManager em; 


    public ArrayList<T01CounterCalls> getClocksDetailsFromVantive() throws SQLException 
     { 
       return (ArrayList<T01CounterCalls>) em.createQuery ("from T01CounterCalls  as data").getResultList(); 

     } 


    } 

私はネットで少し見えました: persistence.xml を宣言したことが一度もありません。

ありがとう、 ray。

+0

最も基本的な形態、永続ユニットデータソースへの単なる結合にあなたは既にGoogleを試しましたか? http://www.google.nl/search?persistence.xml – Gerbrand

答えて

2

私の推測では、persistence unitdata sourceと混同しています。

これらの2つは同じように感じるかもしれませんが、そうではありません。非常に簡単に言えば、パーシスタンスユニットは、一連のクラスとそれに関連するデータソースです。

persistence.xmlの:そして

<?xml version="1.0" encoding="UTF-8"?> 
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0" 
    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="mracPU"> 
     <jta-data-source>java:/mracDS</jta-data-source> 
    </<persistence-unit> 
</persistence> 

注入アノテーションと永続ユニット名を使用する:

@Stateless 
public class ECMSEntityManagerDao implements ECMSEntityManagerDaoLocal, ECMSEntityManagerDaoRemote { 

    @PersistenceContext(unitName = "mracPU") 
    EntityManager em; 
}