public abstract class JMXConnectorServer extends NotificationBroadcasterSupport implements JMXConnectorServerMBean, MBeanRegistration, JMXAddressable
每个连接器服务器类。连接器服务器连接到一个MBean服务器。它侦听客户端连接请求,并为每一个连接创建一个连接。
连接器服务器是一个MBean服务器通过它注册在MBean服务器相关联,或通过MBean服务器它的构造函数。
创建时,连接器服务器处于非活动状态。它不仅开始侦听客户端连接时,start
方法称为。连接器服务器停止侦听客户端连接时,stop
方法叫做或当连接器服务器注册的MBean服务器。
停止连接器服务器不注销其从MBean服务器。一次停止无法重新启动的连接器服务器。
每一次客户端连接或者断,一类JMXConnectionNotification
发出通知。
Modifier and Type | Field and Description |
---|---|
static String |
AUTHENTICATOR
该属性用于指定连接器服务器验证器的名字。
|
Constructor and Description |
---|
JMXConnectorServer()
构建一个连接器服务器将被注册为一个MBean的MBean服务器是连接到。
|
JMXConnectorServer(MBeanServer mbeanServer)
构建了一个连接到给定的MBean服务器连接服务器。
|
Modifier and Type | Method and Description |
---|---|
protected void |
connectionClosed(String connectionId, String message, Object userData)
当客户端连接被正常关闭时调用子类调用。
|
protected void |
connectionFailed(String connectionId, String message, Object userData)
当客户端连接失败时,由子类调用。
|
protected void |
connectionOpened(String connectionId, String message, Object userData)
当打开一个新的客户端连接时调用子类调用。
|
String[] |
getConnectionIds()
当前打开的连接到该连接器服务器的入侵检测系统列表。
|
MBeanServer |
getMBeanServer()
返回此连接器服务器连接到MBean服务器。
|
MBeanNotificationInfo[] |
getNotificationInfo()
返回一个数组,表明这个MBean发送通知。
|
void |
postDeregister()
允许MBean执行任何操作在MBean服务器被注册后需要。
|
void |
postRegister(Boolean registrationDone)
允许MBean执行任何操作在MBean服务器或注册后不需要注册后。
|
void |
preDeregister()
被一个MBean服务器时,该连接器服务器注册服务器,MBean。
|
ObjectName |
preRegister(MBeanServer mbs, ObjectName name)
被一个MBean服务器时,该连接器服务器,管理服务器注册。
|
void |
setMBeanServerForwarder(MBeanServerForwarder mbsf)
插入一个对象,截取MBean服务器到服务器的请求,通过此连接器。
|
JMXConnector |
toJMXConnector(Map<String,?> env)
返回此连接器服务器的客户端存根。
|
addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getAddress, getAttributes, isActive, start, stop
getAddress
public static final String AUTHENTICATOR
该属性用于指定连接器服务器验证器的名字。与此相关的属性值,如果有,必须实现接口的对象JMXAuthenticator
。
public JMXConnectorServer()
构建一个连接器服务器将被注册为一个MBean的MBean服务器是连接到。此构造函数通常称为的createMBean
方法时创建,在MBean服务器,连接服务器,可远程。
public JMXConnectorServer(MBeanServer mbeanServer)
构建了一个连接到给定的MBean服务器连接服务器。一种是以这种方式创建连接器服务器可以在不同的MBean服务器注册,或者没有注册任何MBean服务器。
mbeanServer
-这种连接器服务器连接到MBean服务器。空如果连接器服务器将被登记在它附在一个MBean服务器。
public MBeanServer getMBeanServer()
返回此连接器服务器连接到MBean服务器。
public void setMBeanServerForwarder(MBeanServerForwarder mbsf)
JMXConnectorServerMBean
插入一个对象,截取MBean服务器到服务器的请求,通过此连接器。这个对象将提供任何新的连接通过此连接器服务器创建的MBeanServer
。现有的连接不受影响。
这种方法可以称为一次以上不同MBeanServerForwarder
对象。其结果是一个链的代理。最后一个加入的是链中的第一个。更详细的:
如果此连接器服务器已与MBeanServer
对象相关的对象,然后给mbsf.setMBeanServer
。如果这样做产生的一个例外,这个方法抛出同样的异常没有任何影响。
如果这个连接器是不是已经有MBeanServer
对象相关,或者mbsf.setMBeanServer
调用刚才提到成功,然后mbsf
成为该连接器服务器的MBeanServer
。
setMBeanServerForwarder
接口
JMXConnectorServerMBean
mbsf
-新的
MBeanServerForwarder
。
public String[] getConnectionIds()
JMXConnectorServerMBean
当前打开的连接到该连接器服务器的入侵检测系统列表。
getConnectionIds
接口
JMXConnectorServerMBean
public JMXConnector toJMXConnector(Map<String,?> env) throws IOException
返回此连接器服务器的客户端存根。客户端存根是可序列化的对象的connect
方法可以用来使一个新的连接,这个连接服务器。
一个给定的连接器不需要支持客户端存根的生成。然而,通过JMX远程指定的连接器API做的(jmxmp连接器和RMI连接器)。
此方法的默认实现使用JMXConnectorServerMBean.getAddress()
和JMXConnectorFactory
生成存根代码相当于如下:
jmxserviceurl addr =getAddress()
;返回JMXConnectorFactory.newJMXConnector(addr, env)
;
一,这是不适当的连接器服务器必须重写此方法,可以实现相应的逻辑或抛出UnsupportedOperationException
。
toJMXConnector
接口
JMXConnectorServerMBean
env
-相同的排序,可以提供给
JMXConnector.connect(Map)
客户端连接参数。可以是空的,这相当于一个空的Map。
UnsupportedOperationException
-如果此连接器服务器不支持客户端存根的生成。
IllegalStateException
-如果jmxconnectorserver不启动(见
JMXConnectorServerMBean.isActive()
)。
IOException
-如果一个通信问题意味着一个不能被创造。
public MBeanNotificationInfo[] getNotificationInfo()
返回一个数组,表明这个MBean发送通知。在JMXConnectorServer
实现返回一个元素的数组,这表明它可以发出JMXConnectionNotification
类与类中定义的类型的通知。可以发出其他通知的子类应返回包含此元素的数组和其他通知的说明的数组。
getNotificationInfo
接口
NotificationBroadcaster
getNotificationInfo
方法重写,继承类
NotificationBroadcasterSupport
protected void connectionOpened(String connectionId, String message, Object userData)
当打开一个新的客户端连接时调用子类调用。增加了connectionId
到返回的列表getConnectionIds()
,然后发出一JMXConnectionNotification.OPENED
型JMXConnectionNotification
。
connectionId
-新连接的ID。这必须是不同于先前由这个连接器服务器打开的任何连接的身份证。
message
-发射
JMXConnectionNotification
消息。可以为空。看到
Notification.getMessage()
。
userData
-发出的
userData
JMXConnectionNotification
。可以为空。看到
Notification.getUserData()
。
NullPointerException
-如果
connectionId
是空的。
protected void connectionClosed(String connectionId, String message, Object userData)
当客户端连接被正常关闭时调用子类调用。从列表中删除connectionId
返回getConnectionIds()
,然后发出一JMXConnectionNotification.CLOSED
型JMXConnectionNotification
。
connectionId
-关闭连接的ID。
message
-发射
JMXConnectionNotification
消息。可以为空。看到
Notification.getMessage()
。
userData
-发射
JMXConnectionNotification
userData
可以为空的。看到
Notification.getUserData()
。
NullPointerException
-如果
connectionId
是空的。
protected void connectionFailed(String connectionId, String message, Object userData)
当客户端连接失败时,由子类调用。从列表中删除connectionId
返回getConnectionIds()
,然后发出一JMXConnectionNotification.FAILED
型JMXConnectionNotification
。
connectionId
-失败连接ID。
message
-发射
JMXConnectionNotification
消息。可以为空。看到
Notification.getMessage()
。
userData
-发出的
userData
JMXConnectionNotification
。可以为空。看到
Notification.getUserData()
。
NullPointerException
-如果
connectionId
是空的。
public ObjectName preRegister(MBeanServer mbs, ObjectName name)
被一个MBean服务器时,该连接器服务器,管理服务器注册。此连接器服务器成为连接到MBean服务器及其getMBeanServer()
方法将返回mbs
。
如果此连接器服务器已经连接到MBean服务器,这个方法没有效果。MBean服务器是连接到的不一定是一个被注册。
preRegister
接口
MBeanRegistration
mbs
的MBean服务器,连接服务器注册。
name
- MBean对象名称。
NullPointerException
-如果
mbs
或
name
是空的。
public void postRegister(Boolean registrationDone)
MBeanRegistration
如果执行此方法抛出一个RuntimeException
或Error
MBean服务器对象,将里面的人RuntimeMBeanException
或RuntimeErrorException
,分别。然而,在postRegister
抛出异常并不会改变MBean的状态:如果MBean已经注册(registrationDone
是true
),MBean将保持注册。
这可能是混乱的代码调用createMBean()
或registerMBean()
,这样的代码可能会认为MBean注册失败时抛出一个异常。因此建议实现postRegister
不抛出运行时异常或错误,如果它是可以避免的。
postRegister
接口
MBeanRegistration
registrationDone
-指示是否MBean已在MBean服务器注册成功。价值错误意味着注册阶段已经失败。
public void preDeregister() throws 异常
被一个MBean服务器时,该连接器服务器注册服务器,MBean。如果此连接器服务器连接到被注册在MBean服务器,如果连接服务器仍然活跃,然后注销它会调用stop
方法。如果stop
方法抛出一个异常,注销尝试会失败。建议明确之前注销MBean叫stop
方法。
preDeregister
接口
MBeanRegistration
IOException
如果通过
stop
方法引发。
异常
这个例外将被重新抛出的MBean服务器作为一个
MBeanRegistrationException
。
public void postDeregister()
MBeanRegistration
如果执行此方法抛出一个RuntimeException
或Error
MBean服务器对象,将里面的人RuntimeMBeanException
或RuntimeErrorException
,分别。然而,在postDeregister
抛出异常并不会改变MBean状态:MBean已成功注销,今后仍将如此。
这可能是混乱的代码调用unregisterMBean()
,它可能认为MBean deregistration已经失败了。因此建议实现postDeregister
不抛出运行时异常或错误,如果它是可以避免的。
postDeregister
接口
MBeanRegistration
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.