Tôi không muốn sử dụng plugin Websphere 7 jpa được xây dựng, thay vào đó sử dụng ứng dụng WEB-INF/lib/open-jpa 2 và nhà cung cấp duy trì quyền sở hữu độc quyền. Tôi không thể cài đặt gói tính năng OSGI và JPA 2 cho Websphere.websphere 7 và (ứng dụng dựa trên) open-jpa 2
Ban đầu, tôi đã nhận được lỗi phân tích cú pháp sax chỉ đơn giản là cố gắng tải persistence.xml (phiên bản = "2" không được hỗ trợ). Lỗi được đưa ra bởi một lớp trong jpa mở 1.2.3. Khi tôi chạy websphere/appserver/bin/wsjpaversion.bat, hũ 1.2.3 mở-jpa được hiển thị. Theo mặc định, nó ghi đè mở 2 jpa trong ứng dụng. Tôi đã tạo một thư viện chia sẻ có chứa mở-jpa 2 jar với tùy chọn cấu hình này được chọn: 'Sử dụng bộ nạp lớp riêng biệt cho thư viện được chia sẻ này'. Tôi đặt trình nạp lớp ứng dụng của tôi để tải phụ huynh cuối cùng và gán cho nó tài nguyên thư viện được chia sẻ mới. Lỗi 'phiên bản 2' đã biến mất, nhưng có một vấn đề khác. Khi tôi cố gắng để khởi tạo một EntityManager tôi nhận được một lỗi:
Caused by: javax.persistence.PersistenceException: Failed to load provider from META-INF/services
at javax.persistence.spi.PersistenceProviderResolverHolder$DefaultPersistenceProviderResolver.getPersistenceProviders(PersistenceProviderResolverHolder.java:121)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:91)
at java.lang.J9VMInternals.initializeImpl(Native Method)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
... 2 more
Caused by: java.lang.ClassCastException: com.ibm.websphere.persistence.PersistenceProviderImpl incompatible with javax.persistence.spi.PersistenceProvider
at javax.persistence.spi.PersistenceProviderResolverHolder$DefaultPersistenceProviderResolver.getPersistenceProviders(PersistenceProviderResolverHolder.java:110)
... 11 more
Một chi tiết hơn: bên trong persistence.xml, yếu tố cung cấp dịch vụ được thiết lập để các PersistenceProviderImpl độc quyền không phải là mặc định cung cấp bền vững Websphere. Vậy thì mặc định websphere này đến từ đâu và làm cách nào để ngăn chặn nó? (Một lưu ý quan trọng: khi tôi loại bỏ hoàn toàn persistence.xml, tôi nhận được lỗi tương tự)
Cảm ơn bạn
không chắc chắn điều đó có hữu ích hay không, nhưng bạn có thể thay đổi chính sách của trình nạp lớp thành PARENT_LAST (không được khuyến nghị làm mặc định, nhưng nếu bạn buộc phải làm điều này) –
Tôi gặp vấn đề tương tự. Bất kỳ giải pháp? –