Weblogic 10.3.3 trying to load org.eclipse.persistence.jpa.PersistenceProvider instead of configured Hibernate Provider

前端 未结 3 2064
渐次进展
渐次进展 2021-01-03 08:48

Good Day all ,

I am having this problem since many days now , I was able to successfully deploy JPA2.0 appliaction on weblogic 10.3.3 , the application can run sele

3条回答
  •  失恋的感觉
    2021-01-03 09:19

    You have to follow all that user1877955 said, and add this code, to avoid ClassCastException:

    web.xml

    
        com.bla.Init
    
    

    Init.java

    package com.bla;
    
    import javax.servlet.ServletContextEvent;
    
    public class Initjavax.servlet.ServletContextListener {
    
        public void contextDestroyed(ServletContextEvent arg0) {
    
        }
    
        public void contextInitialized(ServletContextEvent arg0) {
            HibernatePersistenceProviderResolver.register();
        }
    }
    

    HibernatePersistenceProviderResolver.java

    package com.bla;
    
    import java.util.Collections;
    import java.util.List;
    import java.util.logging.Logger;
    
    import javax.persistence.spi.PersistenceProvider;
    import javax.persistence.spi.PersistenceProviderResolver;
    import javax.persistence.spi.PersistenceProviderResolverHolder;
    
    import org.hibernate.ejb.HibernatePersistence;
    
    public class HibernatePersistenceProviderResolver implements PersistenceProviderResolver {
        private static final Logger LOGGER = Logger.getLogger(HibernatePersistenceProviderResolver.class.getName());
    
        private volatile PersistenceProvider persistenceProvider = new HibernatePersistence();
    
        public List getPersistenceProviders() {
            return Collections.singletonList(persistenceProvider);
        }
    
        public void clearCachedProviders() {
            persistenceProvider = new HibernatePersistence();
        }
    
        public static void register() {
            LOGGER.info("Registering HibernatePersistenceProviderResolver");
            PersistenceProviderResolverHolder.setPersistenceProviderResolver(new HibernatePersistenceProviderResolver());
        }
    }
    

提交回复
热议问题