2017-10-22 8 views
0

Wildflyで非常に基本的なJPAの例を実行しようとしています。持続性プロバイダなし

enter image description here

人とプロジェクトが2つのJPAエンティティです: これは私のプロジェクトの構造です。 これは私がpersistence.xmlのが有効であることを知っているので、

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.1" 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"> 

    <persistence-unit name="testJpa"> 
     <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> 
     <class>entities.Person</class> 
     <class>entities.Project</class> 

     <properties> 
     <property name="eclipselink.target-database" value="Derby"/> 
     <property name="javax.persistence.jdbc.url" value="jdbc:derby://localhost:1527/JPADB"/> 
     <property name="javax.persistence.jdbc.user" value="user"/> 
     <property name="javax.persistence.jdbc.password" value="pwd"/> 
     <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver"/> 
     <property name="eclipselink.logging.level" value="FINE"/> 
     <property name="eclipselink.ddl-generation" value="create-tables"/> 
     </properties> 



    </persistence-unit> 
</persistence> 

テーブルが正しくエンティティクラスから生成されている私のpersistence.xmlの内容です。

私はこのように、CreatePersonクラスのエンティティを作成しようとしています:

public class CreatePerson { 

    public static void main(String[ ] args) { 

     EntityManagerFactory emfactory = Persistence.createEntityManagerFactory("testJpa"); 

     EntityManager entitymanager = emfactory.createEntityManager(); 
     entitymanager.getTransaction().begin(); 

     Person usr = new Person(); 
     usr.setName("Bob"); 

     entitymanager.persist(usr); 
     entitymanager.getTransaction().commit(); 

     entitymanager.close(); 
     emfactory.close(); 
    } 
} 

私はあなたが何をしているかは全く不明である次のエラー

Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named testJpa 
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:61) 
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39) 
    at services.CreatePerson.main(CreatePerson.java:11) 
+0

アプリケーションをどのように構築しますか?メイヴンとターゲット戦争?どちらの依存関係の範囲を使用していますか?提供されますか?もしそうなら、Wildflyがクラスパスにeclipselinkの依存関係を持っていると確信していますか? –

答えて

0

を取得します。 WildflyはJavaEEアプリケーションサーバーですが、JavaSEクラスpublic static void mainを参照してください。

あなたは、おそらくあなたはコードが

を動作するはず

@PersistenceContext(unitName = "puName") 
private EntityManager em; 

でそれにのEntityManagerを注入し、DAO EJBを作成します(私の知る限り、あなたがEclipse IDE for Java EE Developersをダウンロードする必要が知っているように、Eclipse用)のJavaEEプロジェクトを作成する必要があります

Person usr = new Person("blabla"); 
em.persist(usr) 

IMHO、別のチュートリアルを探す必要があります。

関連する問題