Error after oracle database upgrade


#1

Hi all

I have an application with hibernate connecting to an Oracle database 11.2.04 and we upgrade to 12.1.0.2, also we converted from single instance to pluggable database, after that upgrade we had an error in the connection.

We solve it by changing the connection chain from SID to service, but now we are getting an error in the DAO class initialization.

Do we need to do anything to the code? Can we indicate somehow the DB upgrade?

Errors:

####<Jan 18, 2018 10:17:20 AM MST> <Error> <HTTP> <> <MS1> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1516295840428> <BEA-101020> <[ServletContext@1919652738[app:RevegyServer module:RevegyServer path:/RevegyServer spec-version:2.5]] Servlet failed with Exception
java.lang.LinkageError: loader constraint violation: loader (instance of <bootloader>) previously initiated loading for a different type with name "javax/xml/stream/XMLEventReader"
        at java.lang.ClassLoader.findBootstrapClass(Native Method)
        at java.lang.ClassLoader.findBootstrapClassOrNull(ClassLoader.java:1062)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:413)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:397)
        at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:387)
        at org.hibernate.boot.cfgxml.internal.JaxbCfgProcessor.unmarshal(JaxbCfgProcessor.java:126)
        at org.hibernate.boot.cfgxml.internal.JaxbCfgProcessor.unmarshal(JaxbCfgProcessor.java:65)
        at org.hibernate.boot.cfgxml.internal.ConfigLoader.loadConfigXmlResource(ConfigLoader.java:55)
        at org.hibernate.boot.registry.StandardServiceRegistryBuilder.configure(StandardServiceRegistryBuilder.java:163)
        at org.hibernate.cfg.Configuration.configure(Configuration.java:259)
        at org.hibernate.cfg.Configuration.configure(Configuration.java:245)
        at com.revegy.dao.DAO.<clinit>(DAO.java:155)
        at com.revegy.web.filter.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:36)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3748)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3714)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2283)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2182)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1499)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:263)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
>
####<Jan 18, 2018 10:21:45 AM MST> <Error> <HTTP> <> <MS1> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tun                                                ing)'> <<WLS Kernel>> <> <> <1516296105078> <BEA-101020> <[ServletContext@19196                                                52738[app:RevegyServer module:RevegyServer path:/RevegyServer spec-version:2.5]                                                ] Servlet failed with Exception
java.lang.NoClassDefFoundError: Could not initialize class com.revegy.dao.DAO
        at com.revegy.web.filter.HibernateSessionFilter.doFilter(HibernateSessi                                                onFilter.java:36)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.j                                                ava:60)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActi                                                on.wrapRun(WebAppServletContext.java:3748)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActi                                                on.run(WebAppServletContext.java:3714)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticat                                                edSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java                                                :120)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebApp                                                ServletContext.java:2283)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServlet                                                Context.java:2182)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.                                                java:1499)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:263)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
>

Regards!


#2

This is not a Hibernate problem. It is a ClassLoader problem. Since you are using WebLogic, you should ask the question on the WebLogic support forum, as they surely know better how their Java EE application server class loading works.