public class RMIConnectionImpl extends Object implements RMIConnection, Unreferenced
RMIConnection接口的实现。用户代码通常不会引用这个类。
| Constructor and Description |
|---|
RMIConnectionImpl(RMIServerImpl rmiServer, String connectionId, ClassLoader defaultClassLoader, Subject subject, Map<String,?> env)
构建了一种新的
RMIConnection。
|
public RMIConnectionImpl(RMIServerImpl rmiServer, String connectionId, ClassLoader defaultClassLoader, Subject subject, Map<String,?> env)
RMIConnection。这种连接既可采用JRMP或IIOP运输。该对象不出口本身:它是调用者的责任,出口适当(见
RMIJRMPServerImpl.makeClient(String,Subject)和
RMIIIOPServerImpl.makeClient(String,Subject)。
rmiServer - rmiserverimpl对象创建此连接。如果此参数为空,则该行为是未指定的。
connectionId -此连接的ID。如果此参数为空,则该行为是未指定的。
defaultClassLoader -时要使用默认的类加载器对象反序列化整理。可以为空,以显示引导类加载程序。
subject -认证主体进行授权。可以为空,以表示没有被验证的主题。
env含有新的
RMIServerImpl属性的环境。可以为零,相当于一个空的Map。
public String getConnectionId() throws IOException
RMIConnection
返回字符串连接ID。这是每一个打开的连接到一个给定的RMI连接器服务器不同。
getConnectionId 接口
RMIConnection
IOException如果发生一般通信异常。
RMIConnector.connect
public void close()
throws IOException
RMIConnection
关闭此连接。从这个方法返回,RMI对象实现该接口导出,因此进一步的远程调用会失败。
close 接口
Closeable
close 接口
AutoCloseable
close 接口
RMIConnection
IOException如果连接无法关闭,或远程对象不能被导出,或有一个沟通失败时发送远程关闭请求。
public void unreferenced()
Unreferenced
unreferenced 接口
Unreferenced
public ObjectInstance createMBean(String className, ObjectName name, Subject delegationSubject) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, IOException
RMIConnection
createMBean 接口
RMIConnection
className - MBean类名称被实例化。
name - MBean对象名称。可能是空的。
delegationSubject包含代表团负责人或
null的
Subject如果认证主要是用来代替。
ObjectInstance,含有
ObjectName和新实例化MBean的java类的名称。如果有
ObjectName是
n,包含java类的名字是
getMBeanInfo(n).getClassName()。
ReflectionException -包装
java.lang.ClassNotFoundException或
java.lang.Exception时试图调用MBean的构造函数。
InstanceAlreadyExistsException的MBean已经是MBean服务器的控制下。
MBeanRegistrationException -
preRegister(
MBeanRegistration接口)的MBean方法抛出异常。MBean将不予注册。
MBeanException - MBean构造函数抛出了一个异常。
NotCompliantMBeanException这类不符合JMX MBean。
IOException如果发生一般通信异常。
public ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName, Subject delegationSubject) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, InstanceNotFoundException, IOException
RMIConnection
createMBean 接口
RMIConnection
className - MBean类名称被实例化。
name - MBean对象名称。可能是空的。
loaderName -类加载器对象的名字被使用。
delegationSubject包含代表团负责人或
null的
Subject如果认证主要是用来代替。
ObjectInstance,含有
ObjectName和新实例化MBean的java类的名称。如果有
ObjectName是
n,包含java类的名字是
getMBeanInfo(n).getClassName()。
ReflectionException -包装
java.lang.ClassNotFoundException或
java.lang.Exception时试图调用MBean的构造函数。
InstanceAlreadyExistsException的MBean已经是MBean服务器的控制下。
MBeanRegistrationException -
preRegister(
MBeanRegistration接口)的MBean方法抛出异常。MBean将不予注册。
MBeanException - MBean构造函数抛出了一个异常。
NotCompliantMBeanException这类不符合JMX MBean。
InstanceNotFoundException -指定的类装载器是不是在MBean服务器注册。
IOException如果发生一般通信异常。
public ObjectInstance createMBean(String className, ObjectName name, MarshalledObject params, String[] signature, Subject delegationSubject) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, IOException
RMIConnection
MBeanServerConnection.createMBean(String, ObjectName, Object[], String[])。的
Object[]参数是包裹在一个
MarshalledObject。
createMBean 接口
RMIConnection
className - MBean类名称被实例化。
name - MBean对象名称。可能是空的。
params -一个数组包含构造函数的参数被调用,封装成一个
MarshalledObject。封装的数组可以是空的,相当于一个空数组。
signature -数组包含要调用构造函数的签名。可以是空的,相当于一个空数组。
delegationSubject包含代表团负责人或
null的
Subject如果认证主要是用来代替。
ObjectInstance,含有
ObjectName和新实例化MBean的java类的名称。如果有
ObjectName是
n,包含java类的名字是
getMBeanInfo(n).getClassName()。
ReflectionException -包装
java.lang.ClassNotFoundException或
java.lang.Exception时试图调用MBean的构造函数。
InstanceAlreadyExistsException的MBean已经是MBean服务器的控制下。
MBeanRegistrationException -
preRegister(
MBeanRegistration接口)的MBean方法抛出异常。MBean将不予注册。
MBeanException - MBean构造函数抛出了一个异常。
NotCompliantMBeanException这类不符合JMX MBean。
IOException如果发生一般通信异常。
public ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName, MarshalledObject params, String[] signature, Subject delegationSubject) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, InstanceNotFoundException, IOException
RMIConnection
MBeanServerConnection.createMBean(String, ObjectName, ObjectName, Object[], String[]),
Object[]参数是包裹在一个
MarshalledObject。
createMBean 接口
RMIConnection
className - MBean类名称被实例化。
name - MBean对象名称。可能是空的。
loaderName -类加载器对象的名字被使用。
params -一个数组包含构造函数的参数被调用,封装成一个
MarshalledObject。封装的数组可以是空的,相当于一个空数组。
signature -数组包含要调用构造函数的签名。可以是空的,相当于一个空数组。
delegationSubject包含代表团负责人或
null的
Subject如果认证主要是用来代替。
ObjectInstance,含有
ObjectName和新实例化MBean的java类的名称。如果有
ObjectName是
n,包含java类的名字是
getMBeanInfo(n).getClassName()。
ReflectionException -包装
java.lang.ClassNotFoundException或
java.lang.Exception时试图调用MBean的构造函数。
InstanceAlreadyExistsException的MBean已经是MBean服务器的控制下。
MBeanRegistrationException -
preRegister(
MBeanRegistration接口)的MBean方法抛出异常。MBean将不予注册。
MBeanException - MBean构造函数抛出了一个异常。
NotCompliantMBeanException这类不符合JMX MBean。
InstanceNotFoundException -指定的类装载器是不是在MBean服务器注册。
IOException如果发生一般通信异常。
public void unregisterMBean(ObjectName name, Subject delegationSubject) throws InstanceNotFoundException, MBeanRegistrationException, IOException
RMIConnection
unregisterMBean 接口
RMIConnection
name - MBean对象名称未登记。
delegationSubject包含代表团负责人或
null的
Subject如果认证主要是用来代替。
InstanceNotFoundException的MBean指定不在MBean服务器注册。
MBeanRegistrationException - prederegister((
MBeanRegistration接口)的MBean方法抛出异常。
IOException如果发生一般通信异常。
public ObjectInstance getObjectInstance(ObjectName name, Subject delegationSubject) throws InstanceNotFoundException, IOException
RMIConnection
getObjectInstance 接口
RMIConnection
name - MBean对象名称。
delegationSubject包含代表团负责人或
null的
Subject如果认证主要是用来代替。
ObjectInstance。所含的
ObjectName是
name和包含的类的名字是
getMBeanInfo(name).getClassName()。
InstanceNotFoundException的MBean指定不在MBean服务器注册。
IOException如果发生一般通信异常。
public Set<ObjectInstance> queryMBeans(ObjectName name, MarshalledObject query, Subject delegationSubject) throws IOException
RMIConnection
queryMBeans 接口
RMIConnection
name -对象名称模式识别的MBean进行检索。如果为空或没有域和关键属性被指定,所有MBeans注册将被收回。
query -查询表达式适用于选择MBeans,封装成一个
MarshalledObject。如果
MarshalledObject封装了一个空值没有查询表达式将用于选择MBeans。
delegationSubject包含代表团负责人或
null的
Subject如果认证主要是用来代替。
ObjectInstance MBeans。如果没有MBean满足查询,则返回一个空列表。
IOException如果发生一般通信异常。
public Set<ObjectName> queryNames(ObjectName name, MarshalledObject query, Subject delegationSubject) throws IOException
RMIConnection
queryNames 接口
RMIConnection
name -对象名称模式识别的MBean名进行检索。如果为空或没有域和关键属性被指定,所有注册MBean的名字将被收回。
query -查询表达式适用于选择MBeans,封装成一个
MarshalledObject。如果
MarshalledObject封装了一个空值没有查询表达式将用于选择MBeans。
delegationSubject包含代表团负责人或
null的
Subject如果认证主要是用来代替。
IOException如果发生一般通信异常。
public boolean isRegistered(ObjectName name, Subject delegationSubject) throws IOException
RMIConnection
isRegistered 接口
RMIConnection
name - MBean对象名称进行检查。
delegationSubject包含代表团负责人或
null的
Subject如果认证主要是用来代替。
IOException如果发生一般通信异常。
public Integer getMBeanCount(Subject delegationSubject) throws IOException
RMIConnection
getMBeanCount 接口
RMIConnection
delegationSubject包含代表团负责人或
null的
Subject如果认证主要是用来代替。
IOException如果发生一般通信异常。
public Object getAttribute(ObjectName name, String attribute, Subject delegationSubject) throws MBeanException, AttributeNotFoundException, InstanceNotFoundException, ReflectionException, IOException
RMIConnection
getAttribute 接口
RMIConnection
name -对象名称的MBean的属性进行检索。
attribute -指定要检索的属性的名称。
delegationSubject -
Subject包含代表团负责人或
null如果认证主要是用来代替。
MBeanException包例外MBean的吸气剂扔。
AttributeNotFoundException -属性中指定的MBean无法访问。
InstanceNotFoundException的MBean指定不在MBean服务器注册。
ReflectionException -包装
java.lang.Exception扔在试图调用getter。
IOException如果发生一般通信异常。
RMIConnection.setAttribute(javax.management.ObjectName, java.rmi.MarshalledObject, javax.security.auth.Subject)
public AttributeList getAttributes(ObjectName name, String[] attributes, Subject delegationSubject) throws InstanceNotFoundException, ReflectionException, IOException
RMIConnection
getAttributes 接口
RMIConnection
name -对象名称的MBean,检索的属性。
attributes -目录的属性进行检索。
delegationSubject -
Subject包含代表团负责人或
null如果认证主要是用来代替。
InstanceNotFoundException的MBean指定不在MBean服务器注册。
ReflectionException -例外发生在试图调用一个动态MBean的getattributes方法。
IOException如果发生一般通信异常。
RMIConnection.setAttributes(javax.management.ObjectName, java.rmi.MarshalledObject, javax.security.auth.Subject)
public void setAttribute(ObjectName name, MarshalledObject attribute, Subject delegationSubject) throws InstanceNotFoundException, AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException, IOException
RMIConnection
MBeanServerConnection.setAttribute(ObjectName, Attribute)。的
Attribute参数是包裹在一个
MarshalledObject。
setAttribute 接口
RMIConnection
name - MBean的属性可以设置名称。
attribute -属性要设置的识别和可设置的值,封装成一个
MarshalledObject。
delegationSubject包含代表团负责人或
null的
Subject如果认证主要是用来代替。
InstanceNotFoundException的MBean指定不在MBean服务器注册。
AttributeNotFoundException -属性中指定的MBean无法访问。
InvalidAttributeValueException为属性指定的值无效。
MBeanException包例外MBean的setter抛出。
ReflectionException -包装
java.lang.Exception扔在试图调用setter。
IOException如果发生一般通信异常。
RMIConnection.getAttribute(javax.management.ObjectName, java.lang.String, javax.security.auth.Subject)
public AttributeList setAttributes(ObjectName name, MarshalledObject attributes, Subject delegationSubject) throws InstanceNotFoundException, ReflectionException, IOException
RMIConnection
MBeanServerConnection.setAttributes(ObjectName, AttributeList)。的
AttributeList参数是包裹在一个
MarshalledObject。
setAttributes 接口
RMIConnection
name -对象名称的MBean的属性来设置。
attributes -目录属性:属性的识别是集和它们的值被设置为,封装成一个
MarshalledObject。
delegationSubject包含代表团负责人或
null的
Subject如果认证主要是用来代替。
InstanceNotFoundException的MBean指定不在MBean服务器注册。
ReflectionException -例外发生在试图调用一个动态MBean的getattributes方法。
IOException如果发生一般通信异常。
RMIConnection.getAttributes(javax.management.ObjectName, java.lang.String[], javax.security.auth.Subject)
public Object invoke(ObjectName name, String operationName, MarshalledObject params, String[] signature, Subject delegationSubject) throws InstanceNotFoundException, MBeanException, ReflectionException, IOException
RMIConnection
MBeanServerConnection.invoke(ObjectName, String, Object[], String[])。的
Object[]参数是包裹在一个
MarshalledObject。
invoke 接口
RMIConnection
name -对象名称的MBean的方法被调用。
operationName -操作的名称被调用。
params -一个数组包含的参数设置操作时调用,封装成一个
MarshalledObject。封装的数组可以是空的,相当于一个空数组。
signature -一个数组包含的操作签名。该类的对象将使用相同的类装载器是用于装载MBean操作的调用加载。可以是空的,相当于一个空数组。
delegationSubject包含代表团负责人或
null的
Subject如果认证主要是用来代替。
InstanceNotFoundException的MBean指定不在MBean服务器注册。
MBeanException包例外MBean的方法被调用。
ReflectionException -包装
java.lang.Exception扔在试图调用的方法。
IOException如果发生一般通信异常。
public String getDefaultDomain(Subject delegationSubject) throws IOException
RMIConnection
getDefaultDomain 接口
RMIConnection
delegationSubject包含代表团负责人或
null的
Subject如果认证主要是用来代替。
IOException如果发生一般通信异常。
public String[] getDomains(Subject delegationSubject) throws IOException
RMIConnection
getDomains 接口
RMIConnection
delegationSubject包含代表团负责人或
null的
Subject如果认证主要是用来代替。
IOException如果发生一般通信异常。
public MBeanInfo getMBeanInfo(ObjectName name, Subject delegationSubject) throws InstanceNotFoundException, IntrospectionException, ReflectionException, IOException
RMIConnection
getMBeanInfo 接口
RMIConnection
name - MBean名分析
delegationSubject包含代表团负责人或
null的
Subject如果认证主要是用来代替。
MBeanInfo允许这个MBean的所有属性和操作的检索实例。
InstanceNotFoundException -没有发现指定的MBean。
IntrospectionException -例外发生在反思。
ReflectionException -例外发生在试图调用一个动态MBean的getmbeaninfo。
IOException如果发生一般通信异常。
public boolean isInstanceOf(ObjectName name, String className, Subject delegationSubject) throws InstanceNotFoundException, IOException
RMIConnection
isInstanceOf 接口
RMIConnection
name - MBean的
ObjectName。
className -类的名字。
delegationSubject包含代表团负责人或
null的
Subject如果认证主要是用来代替。
InstanceNotFoundException的MBean指定不在MBean服务器注册。
IOException如果发生一般通信异常。
public Integer[] addNotificationListeners(ObjectName[] names, MarshalledObject[] filters, Subject[] delegationSubjects) throws InstanceNotFoundException, IOException
RMIConnection
登记的通知从给定的MBean,匹配给定的滤波器。远程用户可以利用fetchNotifications方法检索通知。
每一个听众,原来NotificationListener和handback都保存在客户端;为了让客户能够识别他们,服务器生成并返回一个独特的listenerID。这listenerID转发给远程客户端与Notifications。
如果给定的(名称,过滤器)对中的任何一个不能被注册,那么操作失败时有一个例外,并且没有注册的名称或过滤器。
addNotificationListeners 接口
RMIConnection
names -
ObjectNames识别MBeans发出通知。
filters -集合表示的
NotificationFilters数组。这个数组的元素可以是空的。
delegationSubjects -
Subjects代表其中的听众正在增加。这个数组的元素可以是空的。同时,
delegationSubjects本身的参数可以为空,这相当于空值的数组的大小相同的
names和
filters阵列。
listenerIDs识别本地听众的数组。此数组具有相同的元素数量作为参数。
InstanceNotFoundException -如果一个的
names不对应于任何注册MBean。
IOException如果发生一般通信异常。
public void addNotificationListener(ObjectName name, ObjectName listener, MarshalledObject filter, MarshalledObject handback, Subject delegationSubject) throws InstanceNotFoundException, IOException
RMIConnection
MBeanServerConnection.addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)。的
NotificationFilter参数是包裹在一个
MarshalledObject。的
Object(盖印)参数也被包裹在一个
MarshalledObject。
addNotificationListener 接口
RMIConnection
name -名称的MBean的听众应该增加。
listener -监听器将处理由注册MBean发出的通知对象的名称。
filter -过滤对象,封装成一个
MarshalledObject。如果滤波器封装在
MarshalledObject具有空值,没有过滤之前将通知进行处理。
handback -上下文被送到听众当通知发出后,封装成一个
MarshalledObject。
delegationSubject包含代表团负责人或
null的
Subject如果认证主要是用来代替。
InstanceNotFoundException -通知监听器MBean名或通知广播员不符合任何注册MBean。
IOException如果发生一般通信异常。
RMIConnection.removeNotificationListener(ObjectName, ObjectName, Subject),
RMIConnection.removeNotificationListener(ObjectName, ObjectName, MarshalledObject, MarshalledObject, Subject)
public void removeNotificationListeners(ObjectName name, Integer[] listenerIDs, Subject delegationSubject) throws InstanceNotFoundException, ListenerNotFoundException, IOException
RMIConnection
处理removeNotificationListener(ObjectName, NotificationListener)和removeNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)方法。
此方法删除一个或多个从一个给定的MBean服务器MBean NotificationListeners。
的NotificationListeners由被RMIConnection.addNotificationListeners(ObjectName[], MarshalledObject[], Subject[])方法返回的ID识别。
removeNotificationListeners 接口
RMIConnection
name -
ObjectName标识MBean发出通知。
listenerIDs -对应于听众删除ID列表。
delegationSubject包含代表团负责人或
null的
Subject如果认证主要是用来代替。
InstanceNotFoundException -如果给定的
name不对应于任何注册MBean。
ListenerNotFoundException -如果一个听众不在服务器端发现。这个例外如果MBean丢弃一些原因以外的电话
MBeanServer.removeNotificationListener听众发生。
IOException如果发生一般通信异常。
public void removeNotificationListener(ObjectName name, ObjectName listener, Subject delegationSubject) throws InstanceNotFoundException, ListenerNotFoundException, IOException
RMIConnection
removeNotificationListener 接口
RMIConnection
name -名称的MBean的听众应该被删除。
listener -监听器对象名称被删除。
delegationSubject包含代表团负责人或
null的
Subject如果认证主要是用来代替。
InstanceNotFoundException的MBean提供的名称不符合任何注册MBean。
ListenerNotFoundException -听者不在MBean注册。
IOException如果发生一般通信异常。
RMIConnection.addNotificationListener(javax.management.ObjectName, javax.management.ObjectName, java.rmi.MarshalledObject, java.rmi.MarshalledObject, javax.security.auth.Subject)
public void removeNotificationListener(ObjectName name, ObjectName listener, MarshalledObject filter, MarshalledObject handback, Subject delegationSubject) throws InstanceNotFoundException, ListenerNotFoundException, IOException
RMIConnection
MBeanServerConnection.removeNotificationListener(ObjectName, ObjectName, NotificationFilter, Object),
NotificationFilter参数是包裹在一个
MarshalledObject。的
Object参数也被包裹在一个
MarshalledObject。
removeNotificationListener 接口
RMIConnection
name -名称的MBean的听众应该被删除。
listener -听者以前添加到这个MBean。
filter -过滤器,指定当听众加入,封装成一个
MarshalledObject。
handback -盖印,指定当听众加入,封装成一个
MarshalledObject。
delegationSubject包含代表团负责人或
null的
Subject如果认证主要是用来代替。
InstanceNotFoundException -提供MBean名不匹配任何已注册的MBean。
ListenerNotFoundException -听者不在MBean注册,或不与给定的滤波器和盖印注册。
IOException如果发生一般通信异常。
RMIConnection.addNotificationListener(javax.management.ObjectName, javax.management.ObjectName, java.rmi.MarshalledObject, java.rmi.MarshalledObject, javax.security.auth.Subject)
public NotificationResult fetchNotifications(long clientSequenceNumber, int maxNotifications, long timeout) throws IOException
RMIConnection
从连接器服务器检索通知。此方法可以阻止直到至少有一个通知或直到指定的超时时间到达。该方法还可以在任何时间返回零通知。
一个通知可以如果序列号不小于clientSequenceNumber和这个客户已经注册了至少一个听众对MBean产生的通知包含在结果,与过滤器接受通知。每一位听众,在通知感兴趣的是由一个整数ID返回的RMIConnection.addNotificationListeners(ObjectName[], MarshalledObject[], Subject[])鉴定。
fetchNotifications 接口
RMIConnection
clientSequenceNumber -客户感兴趣的第一个序列号。如果是否定的,它被解释为意义的序列号,下一个通知将有。
maxNotifications -不同通知的最大数量返回。在返回的
NotificationResult的
TargetedNotification阵列可以有更多的元素比这如果同样的通知出现不止一次。如果这个参数是负的,则该行为是未指定的。
timeout的最大毫秒时间等待通知的到来。这可以是0,表明该方法不应该等待,如果没有通知,但应该立即返回。它可以
Long.MAX_VALUE表明没有超时。如果这个参数是负的,则该行为是未指定的。
NotificationResult。
IOException如果发生一般通信异常。
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.