兄弟新手请各位高手帮忙啊。
我新建了一个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)
我新建了一个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)
5:25:45,718 INFO [STDOUT] 999999999999999999this EntityManager :null
哈哈,多调试一下啊,这个就是一个空,楼主多长个心眼,呵呵,细心处着手,
@PersistenceContext
protected EntityManager em; 我吧jar和WEB分开部署就没有问题,可我现在要的是
ear_bean_test
ear_bean_testEJB
ear_bean_testWeb EJB Projetc的部署自动注入啊。
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上面的错误怎么解决啊,谢谢