2010-11-30 9 views
1

저는 Java EE의 초보자입니다. 이것은 내가하려고하는 첫 번째 프로젝트이며 해결할 수없는 문제가 있습니다.JBoss 5.1 Java EE Bean의 빈 EntityManager

나는 slowka-beans (EJB), slowka-persistance (JPA) 및 slowka-web (JSF)의 세 가지 프로젝트를 만들었습니다. 그것들을 배치 한 후에는 퍼시스턴스 유닛에 접근 할 수 없습니다. EntityManager는 null입니다. 모든 것이 잘 작동합니다. 빈을 만들어 내부에서 엔티티 클래스를 인스턴스화하고 JSF 페이지에 표시 할 수 있습니다. 그러나 DB에 어떻게 저장할 수 있습니까? JBoss 사이트에서 MySQL 데이터베이스를 구성했습니다.

나는 다음과 같은 모습이 코드 : (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> 

는 아무튼 서버에 배포 예외가 생기지 않습니다. 하지만 서버의 출력에 다음과 같은 경고를 발견했습니다

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 짧은 코드 조각을 게시하시기 바랍니다 것 유래에 대한 내 질문은 [여기] [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 컨테이너에 의해 인스턴스화되어야한다.

관련 문제