cuốn sách gpt4 ai đã làm

Java EE (Mở) JPA - Không thể truy xuất EntityManagerFactory

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 15:05:01 31 4
mua khóa gpt4 Nike

Tôi đang thiết lập JPA dự án java EE (mở) bằng lệnh sau. Tôi đang sử dụng glassfish 4.0 làm máy chủ ứng dụng của mình nhưng dường như không thể kiên trì hoạt động được.

Vấn đề tôi đang gặp phải có vẻ là một vấn đề khá phổ biến vì có rất nhiều câu trả lời và giải pháp khác nhau cho cùng một lỗi, dường như là do nhiều tình trạng khác nhau gây ra. Tôi đã thử hầu hết các giải pháp mà tôi tìm thấy, rất tiếc là không có kết quả.

Tôi đang cố gắng đưa EntityManager vào một trong các DAO của mình

@Singleton
@Stateless
lớp công khai UserDAOJPAImpl triển khai UserDAO
{

@PersistenceContext(unitName = "pu")
private EntityManager em;

Persence.xml sử dụng openJPA làm nhà cung cấp và sẽ kết nối với tài nguyên JDBC của tôi trong Glassfish, sử dụng MySQL. Cấu hình có vẻ đúng vì kiểm tra ping thành công.

Persence.xml của tôi trông như thế này:





org.apache.openjpa.persistence.PersistenceProviderImpl
jdbc/Kwetter
kwetter.domain.Tweet
kwetter.domain.User


Tệp Persence.xml được đặt tại src/main/java/META-INF/persistence.xml

Tuy nhiên, mọi thứ dường như được tiêm tốt. Khi tôi bắt đầu thực hiện truy vấn bằng EntityManager, tôi gặp lỗi sau:

java.lang.IllegalStateException: Không thể truy xuất EntityManagerFactory cho unitName pu
tại com.sun.enterprise.container.common.impl.EntityManagerWrapper.init(EntityManagerWrapper.java:138)
tại com.sun.enterprise.container.common.impl.EntityManagerWrapper.doTxRequiredCheck(EntityManagerWrapper.java:158)
tại com.sun.enterprise.container.common.impl.EntityManagerWrapper.doTransactionScopedTxCheck(EntityManagerWrapper.java:151)
tại com.sun.enterprise.container.common.impl.EntityManagerWrapper.persist(EntityManagerWrapper.java:281)
tại kwetter.dao.UserDAOCollectionImpl.create(UserDAOCollectionImpl.java:39)
tại sun.reflect.NativeMethodAccessorImpl.invoke0(Phương thức gốc)
tại sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
tại sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
tại java.lang.reflect.Method.invoke(Method.java:606)
tại org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1081)
tại org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1153)
tại com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4695)
tại com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:630)
tại com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)
tại com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:582)
tại org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:46)
tại sun.reflect.NativeMethodAccessorImpl.invoke0(Phương thức gốc)
tại sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
tại sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
tại java.lang.reflect.Method.invoke(Method.java:606)
tại com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:883)
tại com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)
tại com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:582)
tại com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doCall(SystemInterceptorProxy.java:163)
tại com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:140)
tại sun.reflect.NativeMethodAccessorImpl.invoke0(Phương thức gốc)
tại sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
tại sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
tại java.lang.reflect.Method.invoke(Method.java:606)
tại com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:883)
tại com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)
tại com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:369)
tại com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:4667)
tại com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4655)
tại com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:212)
... 84 thêm
]]

Tôi đã kiểm tra tất cả cài đặt nhiều lần nhưng dường như không tìm ra nguyên nhân của sự cố này. Bất kỳ trợ giúp sẽ được đánh giá rất cao.

câu trả lời hay nhất

Như pL4Gu33 đã đề xuất trong nhận xét, vị trí tệp Persence.xml của tôi có vẻ không chính xác.

IDE của tôi (IntelliJ IDEA) tự động đặt tệp Persence.xml vào thư mục META-INF. Tuy nhiên, tôi cần có thư mục META-INF trong thư mục tài nguyên của dự án.

Tải tệp Persence.xml sau khi thay đổi vị trí của tệp Persence.xml:src/main/resources/META-INF/persistence.xml.

Về JPA Java EE (Mở) - Không thể truy xuất EntityManagerFactory, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/22117377/

31 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress