|
|
weblogic.management.NoAccessRuntimeException
I am using spring 2.0.4, WebLogic 9.2 MP1, JDK 5 (150_06) and trying to get a custom JMX bean exported so that I can use the Wily Introscope tool and monitor a few application level things. I can get the bean to export fine, but when I update the app through the WLS console so that I can deploy changes I get an error when the exporter attempts to unregister the JMX bean:
2007-07-11 13:57:30,714 ERROR [org..beans.factory.support.Disposab leBeanAdapter] - amp;lt;Couldn't invoke destroy method of bean with name 'exporter'amp;gt;
weblogic.management.NoAccessRuntimeException: Access not allowed for subject: principals=[], on ResourceType: DualAuthLogonStatistics Action: unregister, Target: null at weblogic.management.internal.SecurityHelper$IsAcce ssAllowedPrivilegeAction.wlsRun(SecurityHelper.jav a:800) at weblogic.management.internal.SecurityHelper$IsAcce ssAllowedPrivilegeAction.run(SecurityHelper.java:6 64) at weblogic.security.acl.internal.AuthenticatedSubjec t.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(Se curityManager.java:121) at weblogic.management.internal.SecurityHelper.isAcce ssAllowed(SecurityHelper.java:259) at weblogic.management.internal.SecurityHelper.isAcce ssAllowed(SecurityHelper.java:148) at weblogic.management.mbeanservers.internal.Security Interceptor.checkUnregisterSecurity(SecurityInterc eptor.java:615) at weblogic.management.mbeanservers.internal.Security Interceptor.unregisterMBean(SecurityInterceptor.ja va:303) at weblogic.management.mbeanservers.internal.Authenti catedSubjectInterceptor$7.run(AuthenticatedSubject Interceptor.java:260) at weblogic.security.acl.internal.AuthenticatedSubjec t.doAs(AuthenticatedSubject.java:363) at weblogic.management.mbeanservers.internal.Authenti catedSubjectInterceptor.unregisterMBean(Authentica tedSubjectInterceptor.java:258) at weblogic.management.jmx.mbeanserver.WLSMBeanServer .unregisterMBean(WLSMBeanServer.java:203) at org..jmx.support.MBeanRegistrationS upport.unregisterBeans(MBeanRegistrationSupport.ja va:206) at org..jmx.export.MBeanExporter.destr oy(MBeanExporter.java:397) at org..beans.factory.support.Disposab leBeanAdapter.destroy(DisposableBeanAdapter.java:1 45) at org..beans.factory.support.DefaultS ingletonBeanRegistry.destroyBean(DefaultSingletonB eanRegistry.java:335) at org..beans.factory.support.DefaultS ingletonBeanRegistry.destroySingleton(DefaultSingl etonBeanRegistry.java:308) at org..beans.factory.support.DefaultS ingletonBeanRegistry.destroySingletons(DefaultSing letonBeanRegistry.java:282) at org..context.support.AbstractApplic ationContext.destroyBeans(AbstractApplicationConte xt.java:676) at org..context.support.AbstractApplic ationContext.doClose(AbstractApplicationContext.ja va:654) at org..context.support.AbstractApplic ationContext.close(AbstractApplicationContext.java :621) at org..web.servlet.FrameworkServlet.d estroy(FrameworkServlet.java:533) at weblogic.servlet.internal.StubSecurityHelper$Servl etDestroyAction.run(StubSecurityHelper.java:292) at weblogic.security.acl.internal.AuthenticatedSubjec t.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(Se curityManager.java:121) at weblogic.servlet.internal.StubSecurityHelper.destr oyServlet(StubSecurityHelper.java:81) at weblogic.servlet.internal.StubLifecycleHelper.dest royOneInstance(StubLifecycleHelper.java:134) at weblogic.servlet.internal.StubLifecycleHelper.dest roy(StubLifecycleHelper.java:124) at weblogic.servlet.internal.ServletStubImpl.destroy( ServletStubImpl.java:412) at weblogic.servlet.internal.WebAppServletContext.des troyServlets(WebAppServletContext.java:2862) at weblogic.servlet.internal.WebAppServletContext.des troy(WebAppServletContext.java:2825) at weblogic.servlet.internal.ServletContextManager.de stroyContext(ServletContextManager.java:236) at weblogic.servlet.internal.fromServer.unloadWebApp( fromServer.java:440) at weblogic.servlet.internal.WebAppModule.destroyCont exts(WebAppModule.java:916) at weblogic.servlet.internal.WebAppModule.deactivate( WebAppModule.java:346) at weblogic.application.internal.flow.ModuleStateDriv er$2.previous(ModuleStateDriver.java:188) at weblogic.application.utils.StateMachineDriver.prev iousState(StateMachineDriver.java:52) at weblogic.application.utils.StateMachineDriver.prev iousState(StateMachineDriver.java:42) at weblogic.application.internal.flow.ModuleStateDriv er.deactivate(ModuleStateDriver.java:71) at weblogic.application.internal.flow.ScopedModuleDri ver.deactivate(ScopedModuleDriver.java:206) at weblogic.application.internal.flow.ModuleListenerI nvoker.deactivate(ModuleListenerInvoker.java:124) at weblogic.application.internal.flow.DeploymentCallb ackFlow$2.previous(DeploymentCallbackFlow.java:387 ) at weblogic.application.utils.StateMachineDriver.prev iousState(StateMachineDriver.java:52) at weblogic.application.utils.StateMachineDriver.prev iousState(StateMachineDriver.java:42) at weblogic.application.internal.flow.DeploymentCallb ackFlow.deactivate(DeploymentCallbackFlow.java:88) at weblogic.application.internal.flow.DeploymentCallb ackFlow.deactivate(DeploymentCallbackFlow.java:80) at weblogic.application.internal.BaseDeployment$2.pre vious(BaseDeployment.java:641) at weblogic.application.utils.StateMachineDriver.prev iousState(StateMachineDriver.java:52) at weblogic.application.utils.StateMachineDriver.prev iousState(StateMachineDriver.java:42) at weblogic.application.internal.BaseDeployment.deact ivate(BaseDeployment.java:234) at weblogic.application.internal.DeploymentStateCheck er.deactivate(DeploymentStateChecker.java:189) at weblogic.deploy.internal.targetserver.AppContainer Invoker.deactivate(AppContainerInvoker.java:99) at weblogic.deploy.internal.targetserver.BasicDeploym ent.deactivate(BasicDeployment.java:260) at weblogic.deploy.internal.targetserver.BasicDeploym ent.deactivateFromServerLifecycle(BasicDeployment. java:449) at weblogic.management.deploy.internal.DeploymentAdap ter$1.doDeactivate(DeploymentAdapter.java:75) at weblogic.management.deploy.internal.DeploymentAdap ter.deactivate(DeploymentAdapter.java:201) at weblogic.management.deploy.internal.AppTransition$ 6.transitionApp(AppTransition.java:66) at weblogic.management.deploy.internal.ConfiguredDepl oyments.transitionApps(ConfiguredDeployments.java: 233) at weblogic.management.deploy.internal.ConfiguredDepl oyments.deactivate(ConfiguredDeployments.java:198) at weblogic.management.deploy.internal.ConfiguredDepl oyments.undeploy(ConfiguredDeployments.java:191) at weblogic.management.deploy.internal.DeploymentServ erService.shutdownApps(DeploymentServerService.jav a:188) at weblogic.management.deploy.internal.DeploymentServ erService.shutdownHelper(DeploymentServerService.j ava:120) at weblogic.application.ApplicationService.halt(Appli cationService.java:142) at weblogic.t3.srvr.ServerServicesManager.haltInterna l(ServerServicesManager.java:417) at weblogic.t3.srvr.ServerServicesManager.halt(Server ServicesManager.java:264) at weblogic.t3.srvr.T3Srvr.shutdown(T3Srvr.java:865) at weblogic.t3.srvr.T3Srvr.forceShutdown(T3Srvr.java: 773) at weblogic.t3.srvr.ServerRuntime.forceShutdown(Serve rRuntime.java:330) at weblogic.server.RemoteLifeCycleOperationsImpl.forc eShutdown(RemoteLifeCycleOperationsImpl.java:57) at weblogic.server.RemoteLifeCycleOperationsImpl_WLSk el.invoke(Unknown Source) at weblogic.rmi.internal.BasicServerRef.invoke(BasicS erverRef.java:548) at weblogic.rmi.internal.BasicServerRef$1.run(BasicSe rverRef.java:438) at weblogic.security.acl.internal.AuthenticatedSubjec t.doAs(AuthenticatedSubject.java:363) at weblogic.security.service.SecurityManager.runAs(Se curityManager.java:147) at weblogic.rmi.internal.BasicServerRef.handleRequest (BasicServerRef.java:434) at weblogic.rmi.internal.BasicServerRef.access$300(Ba sicServerRef.java:57) at weblogic.rmi.internal.BasicServerRef$BasicExecuteR equest.run(BasicServerRef.java:965) at weblogic.work.ExecuteThread.execute(ExecuteThread. java:209) at weblogic.work.ExecuteThread.run(ExecuteThread.java :181)
When the app updates, the JMX bean is not registered again and I have to bounce the WLS node in order to have it register. I will post the spring config XML file because this post is too long.
Any ideas?
Here is the application spring config XML:
lt;bean id=quot;dualAuthStatsquot; class=quot;com.zionsbancorp.cbt.management.DualAuthSta tsquot; scope=quot;singletonquot;/gt;
lt;bean id=quot;exporterquot; class=quot;org..jmx.export.MBeanExporte rquot; lazy-init=quot;falsequot;gt; lt;property name=quot;serverquot; ref=quot;mBeanServerquot; /gt; lt;property name=quot;assemblerquot; ref=quot;assemblerquot;gt;lt;/propertygt; lt;property name=quot;beansquot;gt; lt;mapgt; lt;entry key=quot;cbt:Name=ESSPRuntime,Type=DualAuthLogonStatis ticsquot; value-ref=quot;dualAuthStatsquot; /gt; lt;/mapgt; lt;/propertygt; lt;property name=quot;registrationBehaviorNamequot; value=quot;REGISTRATION_IGNORE_EXISTINGquot; /gt; lt;property name=quot;autodetectquot; value=quot;truequot; /gt;
lt;/beangt;
lt;bean id=quot;assemblerquot; class=quot;org..jmx.export.assembler.In terfaceBasedMBeanInfoAssemblerquot;gt;
lt;property name=quot;interfaceMappingsquot;gt;
lt;propsgt;
lt;prop key=quot;cbt:Name=ESSPRuntime,Type=DualAuthLogonStatis ticsquot;gt;com.zionsbancorp.cbt.management.DualAuthStat sMBeanlt;/propgt;
lt;/propsgt;
lt;/propertygt;
lt;/beangt;
lt;bean id=quot;mBeanServerquot; class=quot;org..jndi.JndiObjectFactoryB eanquot;gt; lt;property name=quot;jndiNamequot; value=quot;java:comp/env/jmx/runtimequot; /gt; lt;/beangt; |
|