NullPointerException EntityManager

时间:2015-10-15 14:05:19

标签: java-ee jpa ejb

当我调用EntityManager的persist方法时,我有一个nullPointerException错误

DAO:

@Stateful
public class ClientDAO  {

@PersistenceContext(unitName = "JPADB")
 private EntityManager em;
 public void save(Client cl){         
 em.persist(cl);
}   
}

IMPL

@Stateful
public class ClientImpl {
@EJB
private ClientDAO clDAO ;    
public void create(Client cl){           
    clDAO.save(cl);
}
}

persistance.xml

<persistence 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_2_0.xsd"
version="2.0">
  <persistence-unit name="JPADB" transaction-type="JTA">
    <jta-data-source>java:/MySqlDS</jta-data-source>
    <properties>
      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
      <property name="hibernate.hbm2ddl.auto" value="create" /> 
      <property name="hibernate.hbm2ddl.auto" value="update" /> 
    </properties>
  </persistence-unit>
</persistence>

这是例外:

javax.faces.el.EvaluationException: java.lang.NullPointerException
    javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
    com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
    javax.faces.component.UICommand.broadcast(UICommand.java:315)
    javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
    javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
    com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
    com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)

cl不为空。

entitymanager em为空。

请任何帮助。

0 个答案:

没有答案