Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 插入MBean拦截器_Java_Jmx_Mbeans - Fatal编程技术网

Java 插入MBean拦截器

Java 插入MBean拦截器,java,jmx,mbeans,Java,Jmx,Mbeans,我在一个实现MBean的java项目中工作,我需要拦截MBean并在注册之前更改/添加它们的属性。例如: domainName:name=myMBean->domainName:name=myMBean1,type=myType 我找到了它,它展示了如何应用一个拦截器,而不是默认的拦截器,但我不知道如何在代码中做到这一点 提前感谢。一旦你注册了bean,显然已经太晚了。最简单的方法是更改注册的方式。如果您向我们展示您用于注册bean的框架,那么我将能够提供更多帮助 通常,无论实际注册做什么,都会

我在一个实现MBean的java项目中工作,我需要拦截MBean并在注册之前更改/添加它们的属性。例如:

domainName:name=myMBean->domainName:name=myMBean1,type=myType

我找到了它,它展示了如何应用一个拦截器,而不是默认的拦截器,但我不知道如何在代码中做到这一点


提前感谢。

一旦你注册了bean,显然已经太晚了。最简单的方法是更改注册的方式。如果您向我们展示您用于注册bean的框架,那么我将能够提供更多帮助

通常,无论实际注册做什么,都会执行以下操作:

private MBeanServer mbeanServer;
...
mbeanServer.registerMBean(mbean, objectName);
因此,您可以提供不同的ObjectName:

但我想你不是自己注册的


顺便说一句,我不确定您是否可以切换到使用不同的JMX框架,但我最近已经完成了最后的工作。它允许对象在发布时进行编辑。

我添加了一个简单的答案。如果你能用你用来注册MBean的框架来编辑你的问题,我会回答得更好。事实上,这个项目就是JOnAS。对于mbean注册表,JOnAS使用名为BaseModelMBean的apache API和mbean描述符。我不知道这是否回答了你的问题,我在这个领域还没有太多的参考文献。更改您描述的对象名称的级别太低。我需要根据要部署的应用程序中是否存在信息来更改一些MBean。所以:1。在某个地方,我们想注册一个MBean2。检查信息的存在性,并根据需要更改objectname。3.注册mbean以查找以下内容:-。提前谢谢。对不起,我不知道这个框架。我不确定您是否可以切换,但实际上我最近对我的简单JMX系统进行了最后的润色。它允许对象以编程方式命名自己:我需要的另一方面可以看作是默认MBeanServer的代理。在这个代理中,我们可以处理请求。代理将实现相同的接口以及代码,这些代码允许在注册之前处理MBean,还允许访问MBean。例如,应用程序只能访问type=myType的MBean。
ObjectName objectName = new ObjectName("domainName:name=myMBean1,type=myType");