兄弟新手请各位高手帮忙啊。
我新建了一个EJB Project
结构如下:
     ear_bean_test    ear_bean_testEJB    ear_bean_testWeb
还有另外的一个工程的源码关联到了ear_bean_testEJB中,persistence.xml文件的位置是ear_bean_testEJB/src/META-INF/persistence.xml内容为
<?xml version="1.0" encoding="UTF-8"?>
<persistence>
   <persistence-unit name = "myTest">
       <jta-data-source>java:/MytestDS</jta-data-source>
          <properties>
            <property name = "hibernate.hbm2ddl.auto" value = "update" />
          </properties>
   </persistence-unit>
</persistence>
我的数据源和相关jar包配置绝对正确<datasources>
  <local-tx-datasource>
    <jndi-name>MytestDS</jndi-name>
    <connection-url>jdbc:db2://localhost:50000/testdb</connection-url>
    <driver-class>com.ibm.db2.jcc.DB2Driver</driver-class>
    <user-name>db2admin</user-name>
    <password>db2admin</password>
    <min-pool-size>20</min-pool-size>
      <metadata>
         <type-mapping>DB2</type-mapping>
      </metadata>
  </local-tx-datasource>
</datasources>在jbss4.2.3中部署时 
package com.interfaces;import java.util.List;import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import javax.persistence.PersistenceContext;
import java.io.*;import com.beans.PersonDAO;@Stateless
@Remote({PersonDAO.class})
public class PersonDAOBean implements PersonDAO {

    @PersistenceContext
    protected EntityManager em;
    
    public boolean insertPerson(String pname, int personage) {
try{
System.out.println("999999999999999999this EntityManager :"+em);
Person person = new Person();
person.setPname(pname);
person.setPersonage(personage);
em.persist(person);

}catch(Exception e){
e.printStackTrace();
return false;
}
return true;

} }
总是不能注入,每次运行相应的ear_bean_testWeb中的JSP页面总是一下的错误:
5:25:45,718 INFO  [STDOUT] 999999999999999999this EntityManager :null
15:25:45,734 ERROR [STDERR] java.lang.NullPointerException
15:25:45,734 ERROR [STDERR]  at com.interfaces.PersonDAOBean.insertPerson(PersonDAOBean.java:57)
15:25:45,734 ERROR [STDERR]  at org.apache.jsp.test.EntityBeanTest_jsp._jspService(EntityBeanTest_jsp.java:75)
15:25:45,734 ERROR [STDERR]  at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
15:25:45,734 ERROR [STDERR]  at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
15:25:45,734 ERROR [STDERR]  at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
15:25:45,734 ERROR [STDERR]  at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:336)
15:25:45,734 ERROR [STDERR]  at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
15:25:45,734 ERROR [STDERR]  at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
15:25:45,734 ERROR [STDERR]  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
15:25:45,734 ERROR [STDERR]  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
15:25:45,734 ERROR [STDERR]  at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
15:25:45,734 ERROR [STDERR]  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
15:25:45,734 ERROR [STDERR]  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
15:25:45,734 ERROR [STDERR]  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
15:25:45,734 ERROR [STDERR]  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
15:25:45,734 ERROR [STDERR]  at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
15:25:45,734 ERROR [STDERR]  at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
15:25:45,734 ERROR [STDERR]  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
15:25:45,734 ERROR [STDERR]  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
15:25:45,734 ERROR [STDERR]  at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
15:25:45,734 ERROR [STDERR]  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
15:25:45,734 ERROR [STDERR]  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
15:25:45,734 ERROR [STDERR]  at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
15:25:45,734 ERROR [STDERR]  at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
15:25:45,734 ERROR [STDERR]  at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
15:25:45,734 ERROR [STDERR]  at java.lang.Thread.run(Unknown Source)

解决方案 »

  1.   

    总是不能注入,每次运行相应的ear_bean_testWeb中的JSP页面总是一下的错误: 
    5:25:45,718 INFO  [STDOUT] 999999999999999999this EntityManager :null
    哈哈,多调试一下啊,这个就是一个空,楼主多长个心眼,呵呵,细心处着手,
      

  2.   

    楼上的兄弟说了等于没说啊,哪怕给个提示也行啊,在EJB中一下下是可以自动注入的
    @PersistenceContext 
    protected EntityManager em; 我吧jar和WEB分开部署就没有问题,可我现在要的是
    ear_bean_test 
    ear_bean_testEJB 
    ear_bean_testWeb EJB Projetc的部署自动注入啊。
      

  3.   

    楼主,我是个新手,我想请教你
    14:32:09,546 ERROR [URLDeploymentScanner] Incomplete Deployment listing:--- MBeans waiting for other MBeans ---
    ObjectName: jboss.j2ee:jar=Person.jar,name=PersonDAO,service=EJB3
      State: NOTYETINSTALLED
      I Depend On:
        persistence.units:unitName=EJB3_SQ--- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM ---
    ObjectName: persistence.units:unitName=EJB3_SQ
      State: NOTYETINSTALLED
      Depends On Me:
        jboss.j2ee:jar=Person.jar,name=PersonDAO,service=EJB3上面的错误怎么解决啊,谢谢