bean/mbean integration issue
starksm64 Jan 10, 2007 4:11 PMI was hoping to be able to reference the jboss-service.xml mbean for the socket remoting transport to register a handler for the ProfileService with it similar to how deployers register with the MainDeployer:
... <!-- Add a ProfileService handler to the remoting socket connector --> <bean name="ProfileServiceInvocationHandler" class="org.jboss.aspects.remoting.AOPRemotingInvocationHandler"> <install bean="jboss.remoting:service=Connector,transport=socket" method="addInvocationHandler"> <parameter>ProfileService</parameter> <parameter><this/></parameter> </install> <uninstall bean="jboss.remoting:service=Connector,transport=socket" method="removeInvocationHandler"> <parameter>ProfileService</parameter> </uninstall> </bean>
however, there is a type conflict showing up:
12:56:19,930 ERROR [AbstractKernelController] Error installing to Installed: name=ProfileServiceInvocationHandler state=Start java.lang.ClassCastException: org.jboss.system.microcontainer.ServiceControllerContext at org.jboss.kernel.plugins.dependency.InstallAction.installActionInternal(InstallAction.java:67) at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.installAction(KernelControllerContextAction.java:187) at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.install(KernelControllerContextAction.java:126) at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51) at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:233) at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:709) at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:430) at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:540) at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:474) at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:274) at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:177) at org.jboss.deployers.plugins.deployers.kernel.BeanMetaDataDeployer.deploy(BeanMetaDataDeployer.java:67) at org.jboss.deployers.plugins.deployers.kernel.BeanMetaDataDeployer.deploy(BeanMetaDataDeployer.java:42) at org.jboss.deployers.plugins.deployers.helpers.AbstractSimpleRealDeployer.deploy(AbstractSimpleRealDeployer.java:53) at org.jboss.deployers.plugins.deployer.AbstractSimpleDeployer.commitDeploy(AbstractSimpleDeployer.java:52) at org.jboss.deployers.plugins.deployer.DeployerWrapper.commitDeploy(DeployerWrapper.java:156) at org.jboss.deployers.plugins.deployment.MainDeployerImpl.commitDeploy(MainDeployerImpl.java:523) at org.jboss.deployers.plugins.deployment.MainDeployerImpl.commitDeploy(MainDeployerImpl.java:534) at org.jboss.deployers.plugins.deployment.MainDeployerImpl.process(MainDeployerImpl.java:461) at org.jboss.system.server.profileservice.ProfileServiceBootstrap.loadProfile(ProfileServiceBootstrap.java:372) ...
To allow for such an interaction, the mbean needs to have a mapping of its ServiceControllerContext to a KernelControllerContext, or ServiceControllerContext and KernelControllerContext need a shared base class that adds a common DispatchJoinPoint notion.
I can workaround this by moving the legacy remoting mbean to a mc bean (hopefully).