[
https://issues.apache.org/jira/browse/JS2-1202?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Woonsan Ko resolved JS2-1202.
-----------------------------
Resolution: Fixed
Fixed.
> Cannot deploy local portlet applications by using the deployed local app
> directory (e.g. /WEB-INF/apps)
> -------------------------------------------------------------------------------------------------------
>
> Key: JS2-1202
> URL: https://issues.apache.org/jira/browse/JS2-1202
> Project: Jetspeed 2
> Issue Type: Bug
> Components: Assembly/Configuration, Deployment
> Affects Versions: 2.2.1
> Environment: Any
> Reporter: Woonsan Ko
> Assignee: Woonsan Ko
> Fix For: 2.2.2
>
>
> When deploying jetspeed-layout local PA by extracting all onto
> /jetspeed/WEB-INF/apps/jetspeed-layout, it fails to register the local PA
> with the exception messages below. [Exception message].
> The bean, "deploymentManager" (typeof
> o.a.j.deployment.impl.StandardDeploymentManager) in deployment.xml, tries to
> register the scanned local PAs from either the deployed local app directory
> or the staging directory as soon as it is initialized as a bean.
> The registration process passes through
> o.a.j.tools.pamanager.PortletApplicationManager#grantDefaultPermissions(String),
> and it goes to
> o.a.j.security.util.ojb.JetspeedPrincipalConcreteClassRowReader#extractOjbConcreteClass(ClassDescriptor,
> ResultSet).
> The problem, however, is that the PortletApplicationManager doesn't have a
> chance to be called on the static method,
> #setJetspeedPrincipalManagerProvider(JetspeedPrincipalManagerProvider), which
> is supposed to be called during the *bean initializations* in
> "static-bean-references.xml".
> With the current assembly configurations, it's not guaranteed that the beans
> in static-bean-references.xml are initialized before!
> This kind of static initialization during the bean initialization could
> produce other problems potentially as well; so we need to find a way to avoid
> this kind of complexities (which seems to have been introduced after 2.2.0
> security provider enhancements.)
> However, I think we can postpone refactoring for this now.
> Anyway, to resolve this problem, one simplest solution I have in mind is to
> make the "deploymentManager" bean in deployment.xml start only after the
> spring application context finished initialization on all the beans.
> Also, to isolate the ""deploymentManager" from the spring framework API, it
> is possible to make a utility bean to invoke "start" method by implementing
> org.springframework.context.ApplicationListener.
> -----------------------------------------------------------------------------
> [Exception message]
> 7/14/10 11:59:06:531 PDT] 00000014 SystemOut O 14.07.2010 11:59:06 ERROR
> [org.apache.jetspeed.tools.pamanager.PortletApplicationManager.retryStartPortletApplication():237]
> Unable to start portlet application after 10 retries:
> org.apache.jetspeed.components.portletregistry.RegistryException: Error
> starting portlet application jetspeed-layouts
> org.apache.jetspeed.components.portletregistry.RegistryException: Error
> starting portlet application jetspeed-layouts
> at
> org.apache.jetspeed.tools.pamanager.VersionedPortletApplicationManager.attemptStartPA(VersionedPortletApplicationManager.java:152)
> at
> org.apache.jetspeed.tools.pamanager.PortletApplicationManager.tryStartPortletApplication(PortletApplicationManager.java:244)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:618)
> at
> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
> at
> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
> at
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
> at
> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
> at
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
> at
> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
> at $Proxy15.tryStartPortletApplication(Unknown Source)
> at
> org.apache.jetspeed.tools.pamanager.PortletApplicationManager.retryStartPortletApplication(PortletApplicationManager.java:214)
> at
> org.apache.jetspeed.tools.pamanager.PortletApplicationManager.startLocalPortletApplication(PortletApplicationManager.java:177)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:618)
> at
> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
> at
> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:198)
> at $Proxy15.startLocalPortletApplication(Unknown Source)
> at
> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.initialize(DeployPortletAppEventListener.java:165)
> at
> org.apache.jetspeed.deployment.impl.StandardDeploymentManager.start(StandardDeploymentManager.java:122)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:618)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1414)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1375)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
> at
> java.security.AccessController.doPrivileged(AccessController.java:219)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
> at
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
> at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:269)
> at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:104)
> at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedMap(BeanDefinitionValueResolver.java:320)
> at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:134)
> at
> org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:495)
> at
> org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:162)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:925)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:835)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:440)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
> at
> java.security.AccessController.doPrivileged(AccessController.java:219)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
> at
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
> at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429)
> at
> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
> at
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
> at
> org.apache.jetspeed.components.SpringComponentManager.start(SpringComponentManager.java:308)
> at
> org.apache.jetspeed.engine.JetspeedEngine.start(JetspeedEngine.java:119)
> at
> org.apache.jetspeed.engine.JetspeedServlet.init(JetspeedServlet.java:208)
> at
> com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:226)
> at
> com.ibm.ws.wswebcontainer.servlet.ServletWrapper.init(ServletWrapper.java:320)
> at
> com.ibm.ws.webcontainer.servlet.ServletWrapper.initialize(ServletWrapper.java:1305)
> at
> com.ibm.ws.wswebcontainer.servlet.ServletWrapper.initialize(ServletWrapper.java:153)
> at
> com.ibm.wsspi.webcontainer.extension.WebExtensionProcessor.createServletWrapper(WebExtensionProcessor.java:99)
> at
> com.ibm.ws.webcontainer.webapp.WebApp.getServletWrapper(WebApp.java:887)
> at
> com.ibm.ws.webcontainer.webapp.WebApp.getServletWrapper(WebApp.java:809)
> at
> com.ibm.ws.webcontainer.webapp.WebApp.initializeTargetMappings(WebApp.java:527)
> at
> com.ibm.ws.webcontainer.webapp.WebApp.commonInitializationFinish(WebApp.java:364)
> at com.ibm.ws.wswebcontainer.webapp.WebApp.initialize(WebApp.java:292)
> at
> com.ibm.ws.wswebcontainer.webapp.WebGroup.addWebApplication(WebGroup.java:92)
> at
> com.ibm.ws.wswebcontainer.VirtualHost.addWebApplication(VirtualHost.java:157)
> at
> com.ibm.ws.wswebcontainer.WebContainer.addWebApp(WebContainer.java:671)
> at
> com.ibm.ws.wswebcontainer.WebContainer.addWebApplication(WebContainer.java:624)
> at
> com.ibm.ws.webcontainer.component.WebContainerImpl.install(WebContainerImpl.java:335)
> at
> com.ibm.ws.webcontainer.component.WebContainerImpl.start(WebContainerImpl.java:551)
> at
> com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1274)
> at
> com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1138)
> at
> com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:569)
> at
> com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:817)
> at
> com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:921)
> at
> com.ibm.ws.runtime.component.ApplicationMgrImpl$AppInitializer.run(ApplicationMgrImpl.java:2124)
> at
> com.ibm.wsspi.runtime.component.WsComponentImpl$_AsynchInitializer.run(WsComponentImpl.java:342)
> at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1473)
> Caused by:
> org.apache.jetspeed.components.portletregistry.RegistryException: Failed to
> register portlet application, jetspeed-layouts
> at
> org.apache.jetspeed.tools.pamanager.PortletApplicationManager.registerPortletApplication(PortletApplicationManager.java:435)
> at
> org.apache.jetspeed.tools.pamanager.VersionedPortletApplicationManager.attemptStartPA(VersionedPortletApplicationManager.java:121)
> ... 86 more
> Caused by:
> java.lang.NullPointerException
> at
> org.apache.jetspeed.security.util.ojb.JetspeedPrincipalConcreteClassRowReader.extractOjbConcreteClass(JetspeedPrincipalConcreteClassRowReader.java:74)
> at
> org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readObjectArrayFrom(RowReaderDefaultImpl.java:176)
> at
> org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(RsIterator.java:450)
> at
> org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:275)
> at
> org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(PersistenceBrokerImpl.java:1636)
> at
> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(DelegatingPersistenceBroker.java:307)
> at
> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(DelegatingPersistenceBroker.java:307)
> at
> org.springframework.orm.ojb.PersistenceBrokerTemplate$2.doInPersistenceBroker(PersistenceBrokerTemplate.java:184)
> at
> org.springframework.orm.ojb.PersistenceBrokerTemplate.execute(PersistenceBrokerTemplate.java:138)
> at
> org.springframework.orm.ojb.PersistenceBrokerTemplate.getObjectByQuery(PersistenceBrokerTemplate.java:182)
> at
> org.apache.jetspeed.security.spi.impl.JetspeedSecurityPersistenceManager.getPrincipal(JetspeedSecurityPersistenceManager.java:342)
> at
> org.apache.jetspeed.security.spi.impl.JetspeedSecurityPersistenceManager.getPrincipal(JetspeedSecurityPersistenceManager.java:332)
> at sun.reflect.GeneratedMethodAccessor47.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:618)
> at
> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
> at
> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
> at
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
> at
> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
> at
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
> at
> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
> at $Proxy1.getPrincipal(Unknown Source)
> at
> org.apache.jetspeed.security.impl.BaseJetspeedPrincipalManager.getPrincipal(BaseJetspeedPrincipalManager.java:158)
> at
> org.apache.jetspeed.security.impl.RoleManagerImpl.getRole(RoleManagerImpl.java:147)
> at sun.reflect.GeneratedMethodAccessor46.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:618)
> at
> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
> at
> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
> at
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
> at
> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
> at
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
> at
> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
> at $Proxy6.getRole(Unknown Source)
> at
> org.apache.jetspeed.tools.pamanager.PortletApplicationManager.grantDefaultPermissions(PortletApplicationManager.java:755)
> at
> org.apache.jetspeed.tools.pamanager.PortletApplicationManager.registerPortletApplication(PortletApplicationManager.java:391)
> ... 87 more
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]