On 10/16/06, Jeff Genender <[EMAIL PROTECTED]> wrote:
Paul McMahan wrote: > Also, I worked on a Jetty version of the plugin but encountered some > problems with classloading that I think may be due to the Jetty > assembly pulling in Spring and/or cglib differently than the Tomcat > assembly? I saw a couple of emails go by last week about issues with > Spring in the Jetty assembly, perhaps that could be related. I > haven't drilled down far enough to know the real culprit yet. I suspect a hidden-classes declaration in the Liferay environment will fix this for you.
I suspected that at first and added this to geronimo-application.xml : <hidden-classes> <filter>org.springframework</filter> </hidden-classes> But I still get the ST at the bottom of this note, the following portion looking especially suspect: interface org.springframework.aop.framework.Advised is not visible from class loader I've tried several other different variations of using <hidden-classes>, <non-overrideable-classes>, and <dependency> to work around this. But without a thorough understanding of the underlying problem I'm starting to feel like I'm taking shots in the dark. Unless there's enough information in the ST below to trigger some suggestions I suppose I just need to bite the bullet and crawl through startup with a debugger :-) BTW, the magic ingredient that worked for me in creating the 4.0.0 Liferay plugin for Geronimo's 1.1 tomcat assembly was: <hidden-classes> <filter>org.apache.commons.logging</filter> <filter>org.apache.velocity</filter> <filter>org.springframework</filter> </hidden-classes> <non-overridable-classes> <filter>net.sf.cglib</filter> </non-overridable-classes> This forced Geronimo to use Spring from Liferay but cglib from Geronimo. But now the tomcat liferay plugin doesn't need this and the same plan doesn't work for Jetty. com.liferay.portal.SystemException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.liferay.lock.service.spring.LockServiceFactory' defined in class path resource [META-INF/lock-spring-enterprise.xml]: Cannot resolve reference to bean 'com.liferay.lock.service.spring.LockService.enterprise' while setting bean property 'service'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.liferay.lock.service.spring.LockService.enterprise' defined in class path resource [META-INF/lock-spring-enterprise.xml]: Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: interface org.springframework.aop.framework.Advised is not visible from class loader at com.liferay.lock.service.spring.LockServiceUtil.clear(LockServiceUtil.java:48) at com.liferay.portal.events.StartupAction.run(StartupAction.java:66) at com.liferay.portal.events.EventsProcessor._process(EventsProcessor.java:144) at com.liferay.portal.events.EventsProcessor.process(EventsProcessor.java:73) at com.liferay.portal.servlet.MainServlet.init(MainServlet.java:135) at javax.servlet.GenericServlet.init(GenericServlet.java:168) at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:383) at org.mortbay.jetty.servlet.ServletHolder.start(ServletHolder.java:243) at org.apache.geronimo.jetty.JettyWebAppContext.registerServletHolder(JettyWebAppContext.java:588) at org.apache.geronimo.jetty.JettyWebAppContext$$FastClassByCGLIB$$99d6fb54.invoke(<generated>) at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53) at org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38) at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:122) at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:817) at org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57) at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35) at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96) at org.apache.geronimo.management.geronimo.WebModule$$EnhancerByCGLIB$$7577bc9a.registerServletHolder(<generated>) at org.apache.geronimo.jetty.JettyServletHolder.<init>(JettyServletHolder.java:80) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:274) at org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:933) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:267) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:102) at org.apache.geronimo.gbean.runtime.GBeanInstance.start(GBeanInstance.java:526) at org.apache.geronimo.gbean.runtime.GBeanDependency.attemptFullStart(GBeanDependency.java:111) at org.apache.geronimo.gbean.runtime.GBeanDependency.addTarget(GBeanDependency.java:146) at org.apache.geronimo.gbean.runtime.GBeanDependency$1.running(GBeanDependency.java:120) at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.fireRunningEvent(BasicLifecycleMonitor.java:173) at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.access$300(BasicLifecycleMonitor.java:41) at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor$RawLifecycleBroadcaster.fireRunningEvent(BasicLifecycleMonitor.java:251) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:292) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:102) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:124) at org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:540) at org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:379) at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:374) at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:411) at org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:187) at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:527) at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:508) at org.apache.geronimo.kernel.config.SimpleConfigurationManager$$FastClassByCGLIB$$ce77a924.invoke(<generated>) at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53) at org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38) at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:122) at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:817) at org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57) at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35) at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96) at org.apache.geronimo.kernel.config.EditableConfigurationManager$$EnhancerByCGLIB$$cb32bcee.startConfiguration(<generated>) at org.apache.geronimo.deployment.plugin.local.StartCommand.run(StartCommand.java:67) at java.lang.Thread.run(Thread.java:534) Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.liferay.lock.service.spring.LockServiceFactory' defined in class path resource [META-INF/lock-spring-enterprise.xml]: Cannot resolve reference to bean 'com.liferay.lock.service.spring.LockService.enterprise' while setting bean property 'service'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.liferay.lock.service.spring.LockService.enterprise' defined in class path resource [META-INF/lock-spring-enterprise.xml]: Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: interface org.springframework.aop.framework.Advised is not visible from class loader at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:190) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1046) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:857) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:378) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:233) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:145) at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:537) at com.liferay.lock.service.spring.LockServiceFactory.getService(LockServiceFactory.java:42) at com.liferay.lock.service.spring.LockServiceUtil.clear(LockServiceUtil.java:42) ... 53 more Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.liferay.lock.service.spring.LockService.enterprise' defined in class path resource [META-INF/lock-spring-enterprise.xml]: Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: interface org.springframework.aop.framework.Advised is not visible from class loader at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:403) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:233) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:145) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:186) ... 62 more Caused by: java.lang.IllegalArgumentException: interface org.springframework.aop.framework.Advised is not visible from class loader at java.lang.reflect.Proxy.getProxyClass(Proxy.java:331) at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:552) at org.springframework.aop.framework.JdkDynamicAopProxy.getProxy(JdkDynamicAopProxy.java:104) at org.springframework.aop.framework.JdkDynamicAopProxy.getProxy(JdkDynamicAopProxy.java:94) at org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:70) at org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:99) at org.springframework.ejb.access.SimpleRemoteStatelessSessionProxyFactoryBean.afterPropertiesSet(SimpleRemoteStatelessSessionProxyFactoryBean.java:99) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1091) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:396) ... 65 more