ClassCastException для PersistenceProviderImpl в Карафе - PullRequest
1 голос
/ 17 октября 2019

У меня в Карафе работает несколько микросервисов (4.2.7).

Я получаю эту ошибку при запуске Karaf.
Я думаю, что это не влияет на службы и должно быть что-то простое для исправления.
Я имею в виду, что службы кажутся работающими, и все настроенные источники данных такжев хорошей форме (я проверял их один за другим).

Мы не используем PAX, мы используем чертежи для наших источников данных.
Что может быть причиной этой ошибки и как ее исправить?

    2019-10-17T11:42:08,386 | INFO  | FelixStartLevel  | JtaPlatformInitiator             | 177 - org.hibernate.orm.core - 5.4.2.Final | HHH000490: Using JtaPlatform implementation: [org.hibernate.osgi.OsgiJtaPlatform]
    2019-10-17T11:42:08,413 | INFO  | FelixStartLevel  | PersistenceProviderTracker       | 52 - org.apache.aries.jpa.container - 2.7.2 | Found provider for ybkDS org.hibernate.jpa.HibernatePersistenceProvider
    2019-10-17T11:42:08,414 | ERROR | FelixStartLevel  | Felix                            | 6 - org.ops4j.pax.logging.pax-logging-api - 1.11.2 | Bundle org.apache.aries.jpa.container [52] EventDispatcher: Error during dispatch. (java.lang.ClassCastException: org.apache.openjpa.persistence.PersistenceProviderImpl cannot be cast to javax.persistence.spi.PersistenceProvider)
    java.lang.ClassCastException: org.apache.openjpa.persistence.PersistenceProviderImpl cannot be cast to javax.persistence.spi.PersistenceProvider
        at org.apache.aries.jpa.container.impl.PersistenceProviderTracker.addingService(PersistenceProviderTracker.java:84) ~[?:?]
        at org.apache.aries.jpa.container.impl.PersistenceProviderTracker.addingService(PersistenceProviderTracker.java:44) ~[?:?]
        at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941) ~[osgi.core-6.0.0.jar:?]
        at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:870) ~[osgi.core-6.0.0.jar:?]
        at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256) ~[osgi.core-6.0.0.jar:?]
        at org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:183) ~[osgi.core-6.0.0.jar:?]
        at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:318) ~[osgi.core-6.0.0.jar:?]
        at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:261) ~[osgi.core-6.0.0.jar:?]
        at org.apache.aries.jpa.container.impl.PersistenceBundleTracker.trackProvider(PersistenceBundleTracker.java:229) ~[?:?]
        at org.apache.aries.jpa.container.impl.PersistenceBundleTracker.findPersistenceUnits(PersistenceBundleTracker.java:213) ~[?:?]
        at org.apache.aries.jpa.container.impl.PersistenceBundleTracker.addingBundle(PersistenceBundleTracker.java:98) ~[?:?]
        at org.apache.aries.jpa.container.impl.PersistenceBundleTracker.addingBundle(PersistenceBundleTracker.java:44) ~[?:?]
        at org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:469) ~[osgi.core-6.0.0.jar:?]
        at org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:415) ~[osgi.core-6.0.0.jar:?]
        at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256) ~[osgi.core-6.0.0.jar:?]
        at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229) ~[osgi.core-6.0.0.jar:?]
        at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:444) ~[osgi.core-6.0.0.jar:?]
        at org.apache.felix.framework.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:915) ~[org.apache.felix.framework-5.6.12.jar:?]
        at org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:834) [org.apache.felix.framework-5.6.12.jar:?]
        at org.apache.felix.framework.EventDispatcher.fireBundleEvent(EventDispatcher.java:516) [org.apache.felix.framework-5.6.12.jar:?]
        at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4579) [org.apache.felix.framework-5.6.12.jar:?]
        at org.apache.felix.framework.Felix.activateBundle(Felix.java:2231) [org.apache.felix.framework-5.6.12.jar:?]
        at org.apache.felix.framework.Felix.startBundle(Felix.java:2146) [org.apache.felix.framework-5.6.12.jar:?]
        at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1373) [org.apache.felix.framework-5.6.12.jar:?]
        at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308) [org.apache.felix.framework-5.6.12.jar:?]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_192]

1 Ответ

0 голосов
/ 22 октября 2019

Я решил эту проблему, удалив / удалив OpenJPA из Karaf.
Кажется, у меня установлены другие функции в Karaf, которые уже охватывают JPA.
Эти функции: hibernate, jpa, также Apache Aries JPA blueprint 2.5.0.
Я уверен, что одна из этих обложек JPA. Таким образом, наличие OpenJPA поверх этого стало причиной проблемы.

ПРИМЕЧАНИЕ: Ответ от jbonofre был правильным, я думаю. Не уверен, почему они заставили его удалить этот ответ.

«Разве у вас не развернуто два движка JPA? Как вы используете OpenJPA в вашем комплекте / persistence.xml, но у вас также установлен Hibernate?»

Я решилмоя проблема до того, как я ее увидел, но, похоже, именно в этом и была проблема, у меня уже было более 1 провайдера JPA. Таким образом, удаление OpenJPA решило проблему.

...