2010-11-30 7 views
1

私はJava EEの初心者です。これは私がやろうとしている最初のプロジェクトで、私は解決できない問題があります。JBoss 5.1のJava EE Beanの空のEntityManager

slowka-beans(EJB)、slowka-persistance(JPA)、slowka-web(JSF)という3つのプロジェクトを作成しました。それらをデプロイした後も、永続性ユニットにアクセスできません。EntityManagerはnullです。すべてうまく動作します。豆を作成して内部でエンティティクラスをインスタンス化し、JSFページに表示することができます。しかし、どのようにDBに保存することができますか?私はMySQLデータベースをJBossサイトに設定しています。

私は、次のルックス持つコード:(slowka豆で) LanguagesManager.javaを

@Stateless 
public class LanguagesManager implements LanguagesManagerLocal { 

    @PersistenceContext(unitName="slowka-persistance") 
    private EntityManager em; 

    public LanguagesManager() { 
     System.out.println("LanguagesManagerBean constructor"); 
    } 

    public String getWorking() { 
     if(em == null) { 
      System.out.println("Not working..."); 
      return "Not working..."; 
     } else { 
      System.out.println("It's ALIVE!"); 
      return "It's ALIVE!"; 
     } 
    } 
} 

のpersistence.xml(slowka-持続性):

<?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="slowka-persistance"> 
     <provider>org.hibernate.ejb.HibernatePersistence</provider> 
     <jta-data-source>java:/PraktykiDS</jta-data-source> 
     <class>pl.edu.uj.sobczak.szymon.Language</class> 
    </persistence-unit> 
</persistence> 

はdoesnのサーバー上でこれを展開例外はありません。私は、サーバーの出力に次の警告を発見しました:

23:02:23,801 INFO [PersistenceUnitDeployment] Starting persistence unit persistence.unit:unitName=slowka.ear/slowka-persistance.jar#slowka-persistance 
23:02:23,803 INFO [Ejb3Configuration] Processing PersistenceUnitInfo [ 
    name: slowka-persistance 
    ...] 
23:02:23,804 WARN [Ejb3Configuration] Persistence provider caller does not implement the EJB3 spec correctly. PersistenceUnitInfo.getNewTempClassLoader() is null. 
(... trimmed ...) 
23:02:23,868 INFO [SessionFactoryObjectFactory] Bound factory to JNDI name: persistence.unit:unitName=slowka.ear/slowka-persistance.jar#slowka-persistance 
23:02:23,868 WARN [SessionFactoryObjectFactory] InitialContext did not implement EventContext 

私が取得していますJSPからLanguagesManager::getWorking()アクセスしてるたびに「働いていないの...」出力。

Eclipseでプロジェクトを作成しましたが、JPAはEclipseLinkを使用しています。私は、EclipseLink 1.1.4と2.1.0の両方を同じ結果で試しました。

お手伝いできますか?

+0

私はまったく同じ問題を抱えており、これを解決しようと数日間過ごしました!最後に運がありましたか?もしそうなら、あなたはあなたのpersistence.xmlのコピー、およびサーブレット/豆からのrelaventの短いコードスニペットを投稿してくださいだろう stackoverflowの上の私の質問は[こちら]である[1] [1] :http://stackoverflow.com/questions/5373598/how-to-use-container-managed-transaction-cmt-with-jboss-as-6-hibernate-3-6-jp – willtardy

答えて

2

JSPからEJBを呼び出さないでください。サーブレットから呼び出すと、@EJBでそれらを注入します。

オブジェクトを手動でインスタンス化すると、注入が行われません。オブジェクト(ejb)は、EJBコンテナによってインスタンス化される必要があります。

関連する問題