【发布时间】:2019-04-03 19:43:02
【问题描述】:
我正在使用带有 GlassFish 5 的 eclipse。我正在使用 swing 制作一个三层应用程序。首先我创建了一个 JPA 项目,然后添加了 EJB Facet。 正在使用实体类成功创建模式。
我的 EJB 注入和 EntityManager 注入为空。
在我的控制器中,我注入 EJB 如下:
public class BookQueries {
@EJB
private BookService bs;
public BookQueries() {
/*try {
Context context = new InitialContext();
Object fObj = context
.lookup("java:global/LMS/BookService!com.lms.service.BookService");
bs=(BookService)fObj;
}catch(NamingException e) {
System.out.println("Naming Exception while lookup of bean object");
}
*/
}
正如您在控制器构造函数中看到的那样,我也尝试了 JNDI 查找,但我仍然得到 null。这是我的 EJB 类,我在其中注入了同样为 null 的 EntityManager。
@Stateless
@LocalBean
public class BookService {
@PersistenceContext(name = "LMS")
EntityManager em;
}
这是我的 Persistence.xml 文件
<persistence-unit name="LMS">
<jta-data-source>jdbc/lms</jta-data-source>
<properties>
<property name="eclipselink.ddl-generation"
value="drop-and-create-tables" />
</properties>
</persistence-unit>
我之前在 Eclipse 上制作了 Web 动态应用程序,它在那里一切正常。
请让我知道我做错了什么。谢谢。
【问题讨论】: