我是Java EE新手。我試圖得到一些第一個例子(JPA)。 我正在使用Glassfish v3。麻煩的是我沒有讓App服務器注入EntityManager的 。聽到的是我用JSP客戶端擴展的http://www.adam-bien.com/roller/abien/entry/ejb_3_persistence_jpa_for 的一個示例。Glassfish JPA:注入問題EntityManager
實體:
package beans;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Book {
@Id
@GeneratedValue
private Long id;
private String title;
private String subtitle;
public Book() {
}
public Book(String title) {
this.title = title;
}
}
bookService的接口:
package beans;
import javax.ejb.Local;
@Local
public interface BookService {
Book createOrUpdate(Book book);
void remove(Book book);
Book find(Object id);
}
BookServiceBean:
package beans;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
@Stateless
public class BookServiceBean implements BookService {
@PersistenceContext
private EntityManager em;
public Book createOrUpdate(Book book) {
return em.merge(book);
}
public void remove(Book book) {
em.remove(em.merge(book));
}
public Book find(Object id) {
return em.find(Book.class, id);
}
}
的persistence.xml:
<persistence>
<persistence-unit name="sample" transaction-type="JTA">
<jta-data-source>jdbc/MarcelsDataSource</jta-data-source>
<properties>
<property name="eclipselink.ddl-generation" value="create-tables"/>
</properties>
</persistence-unit>
</persistence>
的index.jsp:
<%@ page import="beans.BookServiceBean" %>
<%@ page import="beans.Book" %>
<html>
<body>
<%
BookServiceBean bs = new BookServiceBean();
Book b = new Book("Superman");
bs.createOrUpdate(b);
%>
</body>
</html>
如果我跑我得到的createOrUpdate()方法顯示java.lang.NullPointerException所以EntityManager的是 顯然不是正確注射的例子。我試圖找到一個補救的日子,現在和 一些幫助將不勝感激。
感謝
馬塞爾
在@Stateless EJB中使用狀態的事實不存在問題嗎? – cdmckay