我的战争包含以下内容:META-INF/MANIFEST.MFWEB-INF/classes/META-INF/persistence.xmlWEB-INF/classes/com/test/service/TestServlet.classWEB-INF/classes/com/test/service/TestEntity.classWEB-INF/classes/jndi.propertiesWEB-INF/classes/postgresql-ds.xmlWEB-INF/jboss-web.xmlWEB-INF/web.xmlindex.jsppersistence.xml:<?xml version="1.0" encoding="UTF-8"?><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_1_0.xsd" version="1.0"> <persistence-unit name="test"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <jta-data-source>java:/TestDS</jta-data-source> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/> <property name="hibernate.hbm2ddl.auto" value="update" /> <property name="hibernate.show_sql" value="true" /> </properties> </persistence-unit></persistence>web.xml:<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app> <display-name>Test Web Application</display-name> <context-param> <param-name>resteasy.scan</param-name> <param-value>true</param-value> </context-param> <listener> <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class> </listener> <servlet> <servlet-name>Resteasy</servlet-name> <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class> 当调用get()方法时,我得到一个NullPointerException; 尚未注入EntityManager。关于我可能缺少的或如何诊断的任何建议?服务器日志中几乎没有。我确定我在没有jboss-web.xml或web.xml中的数据源条目的情况下都能正常工作。我也已经将ds.xml分别部署到了deploy目录,并且绝对可以了-我可以在JMX控制台中看到它。使用JBoss 4.2.3和6.0构建进行了尝试,结果相同。
3 回答
温温酱
TA贡献1752条经验 获得超4个赞
“实体管理器只能注入在事务内部运行的类中”。我认为这绝对不是正确的。您可以注入EXTENDED实体管理器,并在非事务方法中使用它,然后调用事务方法并加入事务(自动或通过调用EntityManager @ joinTransaction())。
添加回答
举报
0/150
提交
取消
