Liferay Jboss classloading problemLiferay Jboss classloading problemhttps://liferay.dev/en/c/message_boards/find_thread?p_l_id=119785333&threadId=740941362024-03-29T07:49:04Z2024-03-29T07:49:04ZRE: Liferay Jboss classloading problemDavid H Nebingerhttps://liferay.dev/en/c/message_boards/find_message?p_l_id=119785333&messageId=741830502016-05-13T13:19:01Z2016-05-13T13:19:01ZJboss does use a configurable class loader so that it handles classes differently than Tomcat's. To what degree the difference is, I'm not sure, but there seems to be a lot of sites explaining jboss class loading.David H Nebinger2016-05-13T13:19:01ZRE: Liferay Jboss classloading problemGavin Thompsonhttps://liferay.dev/en/c/message_boards/find_message?p_l_id=119785333&messageId=741753592016-05-13T09:01:23Z2016-05-13T09:01:23ZThank you for your response, David.<br />If all libs are being loaded from ROOT.war, I find it strange that same hooks/portlets throw these errors only in Jboss and not in Tomcat?<br />I am using same versions in both Tomcat and Jboss liferay versions.<br />Is there any difference in the way Jboss would load classpaths as opposed to Tomcat for the liferay libs?<br /><br />Thank you.Gavin Thompson2016-05-13T09:01:23ZRE: Liferay Jboss classloading problemDavid H Nebingerhttps://liferay.dev/en/c/message_boards/find_message?p_l_id=119785333&messageId=741025512016-05-11T18:58:12Z2016-05-11T18:58:12Z<div class="quote-title">Gavin Thompson:</div><blockquote>We have some liferay hooks that use Spring libraries with version 3.2.1. But when they are being deployed,it seems instead of using these libs , it picks up Spring versions from ROOT.war which has Spring versions 3.0.7.</blockquote><br /><br />A hook is not an independent plugin; hooks run within the ROOT web application and all dependencies come from the ROOT class loader, not from whatever plugin the hook is involved with.<br /><br />As soon as you start trying to mix class loaders, you'll get into these kinds of class loader issues.<br /><br />It's not really a Liferay problem per se, it's the way that hooks work.David H Nebinger2016-05-11T18:58:12ZLiferay Jboss classloading problemGavin Thompsonhttps://liferay.dev/en/c/message_boards/find_message?p_l_id=119785333&messageId=740941352016-05-11T17:09:05Z2016-05-11T17:09:05ZHi,<br /><br />I have an issue with classloading on Liferay with Jboss on EE version 'liferay-portal-jboss-6.1-ee-ga3-sp5'.<br />We have some liferay hooks that use Spring libraries with version 3.2.1. But when they are being deployed,it seems instead of using these libs , it picks up Spring versions from ROOT.war which has Spring versions 3.0.7.<br />So things are failing with classloading exceptions.<br />Does anybody has any ideas as to why it is not picking local libraries and how to make it not use ROOT.war libs?<br />The same set of portlets/hooks are working fine with liferay Tomcat installation.<br />Could this be some bug in liferay-Jboss bundle?<br />Any suggestions will be appreciated.<br /><br />Thank you.<br />Gavin (on behalf of my colleague Rubeena.KunnathParambil@nice.com . Please send any direct responses here).<br /><br />Attaching one exception trace here-<br /><br />17:24:47,874 INFO [com.merced.spring.MultiTenancySpringDispatchServlet] (MSC service thread 1-7) FrameworkServlet 'abcrole': initialization started<br />17:24:47,892 ERROR [com.merced.spring.MultiTenancySpringDispatchServlet] (MSC service thread 1-7) Context initialization failed: org.springframework.beans.factory.parsing.BeanDefinitionParsingException: <br /><br />Configuration problem: Failed to import bean definitions from URL location [classpath:core-portlet-context.xml]<br />Offending resource: ServletContext resource [/WEB-INF/nicerole-servlet.xml]; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class <br /><br />path resource [core-portlet-context.xml]; nested exception is java.io.FileNotFoundException: class path resource [core-portlet-context.xml] cannot be opened because it does not exist<br /> at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68) [spring-beans.jar:3.0.7.RELEASE]<br /> at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85) [spring-beans.jar:3.0.7.RELEASE]<br /> at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:76) [spring-beans.jar:3.0.7.RELEASE]<br /> at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:245) [spring-beans.jar:3.0.7.RELEASE]<br /> at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseDefaultElement(DefaultBeanDefinitionDocumentReader.java:196) [spring-beans.jar:3.0.7.RELEASE]<br /> at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:181) [spring-beans.jar:3.0.7.RELEASE]<br /> at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:140) [spring-beans.jar:3.0.7.RELEASE]<br /> at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:111) [spring-beans.jar:3.0.7.RELEASE]<br /> at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493) [spring-beans.jar:3.0.7.RELEASE]<br /> at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390) [spring-beans.jar:3.0.7.RELEASE]<br /> at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334) [spring-beans.jar:3.0.7.RELEASE]<br /> at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302) [spring-beans.jar:3.0.7.RELEASE]<br /> at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174) [spring-beans.jar:3.0.7.RELEASE]<br /> at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209) [spring-beans.jar:3.0.7.RELEASE]<br /> at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180) [spring-beans.jar:3.0.7.RELEASE]<br /> at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125) [spring-web.jar:3.0.7.RELEASE]<br /> at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94) [spring-web.jar:3.0.7.RELEASE]<br /> at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130) [spring-context.jar:3.0.7.RELEASE]<br /> at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537) [spring-context.jar:3.0.7.RELEASE]<br /> at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:451) [spring-context.jar:3.0.7.RELEASE]<br /> at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:652) [spring-web-servlet.jar:3.0.7.RELEASE]<br /> at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:600) [spring-web-servlet.jar:3.0.7.RELEASE]<br /> at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:666) [spring-web-servlet.jar:3.0.7.RELEASE]<br /> at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:519) [spring-web-servlet.jar:3.0.7.RELEASE]<br /> at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:460) [spring-web-servlet.jar:3.0.7.RELEASE]<br /> at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136) [spring-web-servlet.jar:3.0.7.RELEASE]<br /> at javax.servlet.GenericServlet.init(GenericServlet.java:242) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]<br /> at com.liferay.portal.kernel.servlet.PortalDelegateServlet.doPortalInit(PortalDelegateServlet.java:64) [portal-service.jar:]<br /> at com.liferay.portal.kernel.util.BasePortalLifecycle.portalInit(BasePortalLifecycle.java:44) [portal-service.jar:]<br /> at com.liferay.portal.kernel.util.PortalLifecycleUtil.flushInits(PortalLifecycleUtil.java:50) [portal-service.jar:]<br /> at com.liferay.portal.servlet.MainServlet.initPlugins(MainServlet.java:872) [portal-impl.jar:]<br /> at com.liferay.portal.servlet.MainServlet.init(MainServlet.java:391) [portal-impl.jar:]<br /> at javax.servlet.GenericServlet.init(GenericServlet.java:242) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]<br /> at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1202) [jbossweb-7.0.13.Final.jar:]<br /> at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1102) [jbossweb-7.0.13.Final.jar:]<br /> at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3655) [jbossweb-7.0.13.Final.jar:]<br /> at org.apache.catalina.core.StandardContext.start(StandardContext.java:3873) [jbossweb-7.0.13.Final.jar:]<br /> at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]<br /> at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)<br /> at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)<br /> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_79]<br /> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_79]<br /> at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_79]<br />Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [core-portlet-context.xml]; nested exception is <br /><br />java.io.FileNotFoundException: class path resource [core-portlet-context.xml] cannot be opened because it does not exist<br /> at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:341) [spring-beans.jar:3.0.7.RELEASE]<br /> at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302) [spring-beans.jar:3.0.7.RELEASE]<br /> at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174) [spring-beans.jar:3.0.7.RELEASE]<br /> at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209) [spring-beans.jar:3.0.7.RELEASE]<br /> at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:239) [spring-beans.jar:3.0.7.RELEASE]<br /> ... 39 more<br />Caused by: java.io.FileNotFoundException: class path resource [core-portlet-context.xml] cannot be opened because it does not exist<br /> at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:157) [spring-core