Как только вы зарегистрируете компонент, очевидно, что уже слишком поздно. Самое простое - это изменить порядок регистрации. Если вы покажете нам, какую структуру вы используете для регистрации компонента, я смогу больше помочь.
Обычно все, что делает фактическую регистрацию делает что-то вроде:
private MBeanServer mbeanServer;
...
mbeanServer.registerMBean(mbean, objectName);
поэтому Вы можете предоставить другой ObjectName
:
ObjectName objectName = new ObjectName("domainName:name=myMBean1,type=myType");
Но я предполагаю, что вы не делаете регистрацию самостоятельно.
Как и в сторону, я не уверен, вы можете переключиться на использование другого рамки JMX, но я положил штрихи на мой Simple JMX system в последнее время. Он позволяет объектам name themselves programmatically, когда они публикуются.
Я добавил простой ответ. Если вы можете отредактировать свой вопрос с помощью рамки, которую вы используете, чтобы зарегистрировать свои mbeans, я могу ответить лучше. – Gray