- 所有已实现的接口:
-
Closeable
,Externalizable
,Serializable
,AutoCloseable
,MLetMBean
,MBeanRegistration
- 直接已知的子类:
-
PrivateMLet
MLET
标签具有以下语法:
<MLET
CODE =
class | OBJECT =
serfileARCHIVE = "
archiveList"
[CODEBASE =
codebaseURL]
[NAME =
mbeanname]
[VERSION =
version]
>[
arglist]
</MLET
>
其中:
-
CODE =
class -
此属性指定要获取的MBean的完整Java类名,包括包名。MBean的编译
.class
文件必须包含在ARCHIVE
属性指定的.jar
文件之一中。CODE
或OBJECT
必须存在其中一个。 -
OBJECT =
serfile -
此属性指定包含要获取的MBean的序列化表示的
.ser
文件。此文件必须包含在ARCHIVE
属性指定的.jar
文件之一中。如果.jar
文件包含目录层次结构,请指定此层次结构中文件的路径。否则将找不到匹配项。必须存在CODE
或OBJECT
之一。 -
ARCHIVE = "
archiveList"
-
此必需属性指定一个或多个包含MBeans或其他MBean使用的资源的
.jar
文件。其中一个.jar
文件必须包含由CODE
或OBJECT
属性指定的文件。如果archivelist包含多个文件:- 每个文件必须用逗号(,)与其后的文件分隔。
- archivelist必须用双引号括起来。
.jar
文件必须存储在由代码库URL指定的目录中。 -
CODEBASE =
codebaseURL -
此可选属性指定要获取的MBean的代码库URL。它标识包含由
ARCHIVE
属性指定的.jar
文件的目录。仅当.jar
文件不在与m-let文本文件相同的目录中时才指定此属性。如果未指定此属性,则使用m-let文本文件的基本URL。 -
NAME =
mbeanname -
此可选属性指定在m-let服务注册时分配给MBean实例的对象名称。如果mbeanname以冒号字符(:)开头,则对象名称的域部分是MBean服务器的默认域,由
MBeanServer.getDefaultDomain()
返回。 -
VERSION =
version -
此可选属性指定要获取的MBean及相关
.jar
文件的版本号。此版本号可用于指定下次加载m-let文本文件时从服务器加载这些文件以更新本地缓存中存储的文件。version必须是一系列由句点分隔的非负十进制整数。 - arglist
-
此可选属性指定要实例化的MBean的一个或多个参数列表。此列表描述要传递给MBean构造函数的参数。使用以下语法指定arglist中的每个项目:
-
<
ARG TYPE=
argumentTypeVALUE=
value> -
其中:
- argumentType是将作为参数传递给MBean构造函数的参数类型。
参数列表中的参数类型应为Java基本类型或Java基本类型(
java.lang.Boolean, java.lang.Byte, java.lang.Short, java.lang.Long, java.lang.Integer, java.lang.Float, java.lang.Double, java.lang.String
)。 -
<
m-let服务扩展了java.net.URLClassLoader
,可用于在代理的VM中加载远程类和jar文件。
注意 - MLet
类加载器使用MBeanServerFactory.getClassLoaderRepository(javax.management.MBeanServer)
来加载在加载的jar文件中找不到的类。
- 自版本:
- 1.5
- 参见:
-
Constructor Summary
ConstructorDescriptionMLet()
已弃用,将被移除: 此API元素可能在将来的版本中被移除。构造一个使用默认委托父类加载器的新MLet。已弃用,将被移除: 此API元素可能在将来的版本中被移除。构造一个使用指定URL的默认委托父类加载器的新MLet。已弃用,将被移除: 此API元素可能在将来的版本中被移除。构造一个使用指定URL的默认委托父类加载器的新MLet。MLet
(URL[] urls, ClassLoader parent) 已弃用,将被移除: 此API元素可能在将来的版本中被移除。构造一个给定URL的新MLet。MLet
(URL[] urls, ClassLoader parent, boolean delegateToCLR) 已弃用,将被移除: 此API元素可能在将来的版本中被移除。构造一个给定URL的新MLet。MLet
(URL[] urls, ClassLoader parent, URLStreamHandlerFactory factory) 已弃用,将被移除: 此API元素可能在将来的版本中被移除。构造一个使用指定URL、父类加载器和URLStreamHandlerFactory的新MLet。MLet
(URL[] urls, ClassLoader parent, URLStreamHandlerFactory factory, boolean delegateToCLR) 已弃用,将被移除: 此API元素可能在将来的版本中被移除。构造一个使用指定URL、父类加载器和URLStreamHandlerFactory的新MLet。 -
Method Summary
Modifier and TypeMethodDescriptionvoid
已弃用,将被移除: 此API元素可能在将来的版本中被移除。将指定的URL附加到用于搜索类和资源的URL列表中。void
已弃用,将被移除: 此API元素可能在将来的版本中被移除。将指定的URL附加到用于搜索类和资源的URL列表中。protected URL
check
(String version, URL codebase, String jarfile, MLetContent mlet) 已弃用,将被移除: 此API元素可能在将来的版本中被移除。当扩展此服务以支持缓存和版本控制时,应重写此方法。protected Class
<?> 已弃用,将被移除: 此API元素可能在将来的版本中被移除。重新定义的类加载器的主要方法。protected String
findLibrary
(String libname) 已弃用,将被移除: 此API元素可能在将来的版本中被移除。返回本机库的绝对路径名。已弃用,将被移除: 此API元素可能在将来的版本中被移除。获取库加载程序在将本机库加载到内存之前使用的当前目录。getMBeansFromURL
(String url) 已弃用,将被移除: 此API元素可能在将来的版本中被移除。加载包含定义要添加到MBean服务器的MBeans的MLET标签的文本文件。getMBeansFromURL
(URL url) 已弃用,将被移除: 此API元素可能在将来的版本中被移除。加载包含定义要添加到MBean服务器的MBeans的MLET标签的文本文件。URL[]
getURLs()
已弃用,将被移除: 此API元素可能在将来的版本中被移除。返回用于加载类和资源的URL的搜索路径。Class
<?> loadClass
(String name, ClassLoaderRepository clr) 已弃用,将被移除: 此API元素可能在将来的版本中被移除。如果在此MLet的URL中找不到类,则使用给定的ClassLoaderRepository
加载类。void
已弃用,将被移除: 此API元素可能在将来的版本中被移除。允许m-let在从MBean服务器中注销后执行所需的任何操作。void
postRegister
(Boolean registrationDone) 已弃用,将被移除: 此API元素可能在将来的版本中被移除。允许m-let在向MBean服务器注册后或注册失败后执行所需的任何操作。void
已弃用,将在将来的版本中移除:此API元素可能在将来的版本中被移除。允许 MLet 在被 MBean 服务器取消注册之前执行任何必要的操作。preRegister
(MBeanServer server, ObjectName name) 已弃用,将在将来的版本中移除:此API元素可能在将来的版本中被移除。允许 MLet 在被 MBean 服务器注册之前执行任何必要的操作。void
已弃用,将在将来的版本中移除:此API元素可能在将来的版本中被移除。从给定的ObjectInput
恢复此 MLet 的内容。void
setLibraryDirectory
(String libdir) 已弃用,将在将来的版本中移除:此API元素可能在将来的版本中被移除。设置库加载程序用于在将本地库加载到内存之前存储本地库的目录。void
已弃用,将在将来的版本中移除:此API元素可能在将来的版本中被移除。将此 MLet 的内容保存到给定的ObjectOutput
中。Methods declared in class java.net.URLClassLoader
close, definePackage, findResource, findResources, getPermissions, getResourceAsStream, newInstance, newInstance
Methods declared in class java.security.SecureClassLoader
defineClass, defineClass
Methods declared in class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLoadedClass, findResource, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getResource, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
Methods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods declared in interface javax.management.loading.MLetMBean
getResource, getResourceAsStream, getResources
-
Constructor Details
-
MLet
public MLet()Deprecated, for removal: This API element is subject to removal in a future version.使用默认委托父 ClassLoader 构造一个新的 MLet。 -
MLet
Deprecated, for removal: This API element is subject to removal in a future version.使用指定的 URLs 和默认委托父 ClassLoader 构造一个新的 MLet。在首先在父类加载器中搜索后,将按指定顺序搜索类和资源的 URLs。- 参数:
-
urls
- 用于加载类和资源的 URLs。
-
MLet
Deprecated, for removal: This API element is subject to removal in a future version.使用给定的 URLs 构造一个新的 MLet。在首先在指定的父类加载器中搜索后,将按指定顺序搜索类和资源的 URLs。父级参数将用作委托的父类加载器。- 参数:
-
urls
- 用于加载类和资源的 URLs。 -
parent
- 用于委托的父类加载器。
-
MLet
Deprecated, for removal: This API element is subject to removal in a future version.使用指定的 URLs、父类加载器和 URLStreamHandlerFactory 构造一个新的 MLet。父级参数将用作委托的父类加载器。工厂参数将用作在创建新的 URLs 时获取协议处理程序的流处理程序工厂。- 参数:
-
urls
- 用于加载类和资源的 URLs。 -
parent
- 用于委托的父类加载器。 -
factory
- 创建 URLs 时要使用的 URLStreamHandlerFactory。
-
MLet
Deprecated, for removal: This API element is subject to removal in a future version.使用默认委托父 ClassLoader 构造一个新的 MLet,用于指定的 URLs。在首先在父类加载器中搜索后,将按指定顺序搜索类和资源的 URLs。- 参数:
-
urls
- 用于加载类和资源的 URLs。 -
delegateToCLR
- 如果在父 ClassLoader 或 URLs 中找不到类时,MLet 应该委托给其包含的 MBeanServer 的ClassLoaderRepository
。
-
MLet
Deprecated, for removal: This API element is subject to removal in a future version.使用给定的 URLs 构造一个新的 MLet。在首先在指定的父类加载器中搜索后,将按指定顺序搜索类和资源的 URLs。父级参数将用作委托的父类加载器。- 参数:
-
urls
- 用于加载类和资源的 URLs。 -
parent
- 用于委托的父类加载器。 -
delegateToCLR
- 如果在父 ClassLoader 或 URLs 中找不到类时,MLet 应该委托给其包含的 MBeanServer 的ClassLoaderRepository
。
-
MLet
Deprecated, for removal: This API element is subject to removal in a future version.使用指定的 URLs、父类加载器和 URLStreamHandlerFactory 构造一个新的 MLet。父级参数将用作委托的父类加载器。工厂参数将用作在创建新的 URLs 时获取协议处理程序的流处理程序工厂。- 参数:
-
urls
- 用于加载类和资源的 URLs。 -
parent
- 用于委托的父类加载器。 -
factory
- 创建 URLs 时要使用的 URLStreamHandlerFactory。 -
delegateToCLR
- 如果在父 ClassLoader 或 URLs 中找不到类时,MLet 应该委托给其包含的 MBeanServer 的ClassLoaderRepository
。
-
-
Method Details
-
addURL
Deprecated, for removal: This API element is subject to removal in a future version.将指定的 URL 添加到搜索类和资源的 URL 列表中。- 指定者:
-
addURL
在接口MLetMBean
中 - 覆盖:
-
addURL
在类URLClassLoader
中 - 参数:
-
url
- 要添加到 URL 搜索路径的 URL。
-
addURL
Deprecated, for removal: This API element is subject to removal in a future version.将指定的 URL 添加到搜索类和资源的 URL 列表中。- 指定者:
-
addURL
在接口MLetMBean
中 - 参数:
-
url
- 要添加的 URL。 - 抛出:
-
ServiceNotFoundException
- 指定的 URL 格式不正确。
-
getURLs
Deprecated, for removal: This API element is subject to removal in a future version.返回用于加载类和资源的 URL 搜索路径。这包括最初在构造函数中指定的 URL 列表,以及后来通过 addURL() 方法追加的任何 URL。- 指定者:
-
getURLs
在接口MLetMBean
中 - 覆盖:
-
getURLs
在类URLClassLoader
中 - 返回:
- 用于加载类和资源的 URL 搜索路径。
-
getMBeansFromURL
Deprecated, for removal: This API element is subject to removal in a future version.加载包含定义要添加到 MBean 服务器的 MBeans 的 MLET 标记的文本文件。文本文件的位置由 URL 指定。在 MLET 文件中指定的 MBeans 将被实例化并注册到 MBean 服务器中。- 指定者:
-
getMBeansFromURL
在接口MLetMBean
中 - 参数:
-
url
- 要加载为 URL 对象的文本文件的 URL。 - 返回:
- 包含 m-let 文本文件中每个 MLET 标记的一个条目的集合。每个条目指定已创建 MBean 的 ObjectInstance,或者如果无法创建 MBean,则指定可抛出的对象(即错误或异常)。
- 抛出:
-
ServiceNotFoundException
- 发生以下错误之一:m-let 文本文件不包含 MLET 标记,找不到 m-let 文本文件,未指定 MLET 标记的必需属性,url 的值为 null。 -
IllegalStateException
- MLet MBean 未向 MBeanServer 注册。
-
getMBeansFromURL
Deprecated, for removal: This API element is subject to removal in a future version.加载包含定义要添加到 MBean 服务器的 MBeans 的 MLET 标记的文本文件。文本文件的位置由 URL 指定。在 MLET 文件中指定的 MBeans 将被实例化并注册到 MBean 服务器中。- 指定者:
-
getMBeansFromURL
在接口MLetMBean
中 - 参数:
-
url
- 要加载为 String 对象的文本文件的 URL。 - 返回:
- 包含 m-let 文本文件中每个 MLET 标记的一个条目的集合。每个条目指定已创建 MBean 的 ObjectInstance,或者如果无法创建 MBean,则指定可抛出的对象(即错误或异常)。
- 抛出:
-
ServiceNotFoundException
- 发生以下错误之一:m-let 文本文件不包含 MLET 标记,找不到 m-let 文本文件,未指定 MLET 标记的必需属性,url 格式不正确。 -
IllegalStateException
- MLet MBean 未向 MBeanServer 注册。
-
getLibraryDirectory
Deprecated, for removal: This API element is subject to removal in a future version.获取库加载程序用于在将本地库加载到内存之前存储本地库的当前目录。- 指定者:
-
getLibraryDirectory
在接口MLetMBean
中 - 返回:
- 库加载程序当前使用的目录。
- 抛出:
-
UnsupportedOperationException
- 如果此实现不支持以这种方式存储本地库。 - 参见:
-
setLibraryDirectory
Deprecated, for removal: This API element is subject to removal in a future version.设置库加载器在将本机库加载到内存之前用于存储本机库的目录。- 指定者:
-
setLibraryDirectory
在接口MLetMBean
中 - 参数:
-
libdir
- 库加载器使用的目录。 - 抛出:
-
UnsupportedOperationException
- 如果此实现不支持以这种方式存储本机库。 - 参见:
-
preRegister
Deprecated, for removal: This API element is subject to removal in a future version.允许 m-let 在注册到 MBean 服务器之前执行其需要的任何操作。如果 ObjectName 为 null,则 m-let 为其注册提供默认名称<defaultDomain>:type=MLet- 指定者:
-
preRegister
在接口MBeanRegistration
中 - 参数:
-
server
- 将注册 m-let 的 MBean 服务器。 -
name
- m-let 的对象名称。 - 返回:
- 已注册的 m-let 的名称。
- 抛出:
-
Exception
- MBean 服务器应捕获此异常并重新抛出为 MBeanRegistrationException。
-
postRegister
Deprecated, for removal: This API element is subject to removal in a future version.允许 m-let 在注册到 MBean 服务器后或注册失败后执行所需的任何操作。- 指定者:
-
postRegister
在接口MBeanRegistration
中 - 参数:
-
registrationDone
- 表示 m-let 是否已成功注册到 MBean 服务器。值为 false 意味着注册阶段失败。
-
preDeregister
Deprecated, for removal: This API element is subject to removal in a future version.允许 m-let 在被 MBean 服务器取消注册之前执行其需要的任何操作。- 指定者:
-
preDeregister
在接口MBeanRegistration
中 - 抛出:
-
Exception
- MBean 服务器应捕获此异常并重新抛出为 MBeanRegistrationException。
-
postDeregister
public void postDeregister()Deprecated, for removal: This API element is subject to removal in a future version.允许 m-let 在 MBean 服务器中取消注册后执行所需的任何操作。- 指定者:
-
postDeregister
在接口MBeanRegistration
中
-
writeExternal
Deprecated, for removal: This API element is subject to removal in a future version.将此 MLet 的内容保存到给定的
ObjectOutput
。并非所有实现都支持此方法。不支持的实现会抛出UnsupportedOperationException
。子类可以重写此方法以支持它或更改所写数据的格式。所写数据的格式未指定,但如果实现支持
writeExternal(java.io.ObjectOutput)
,则必须以使前者写入的内容可以被后者读取的方式支持readExternal(java.io.ObjectInput)
。- 指定者:
-
writeExternal
在接口Externalizable
中 - 参数:
-
out
- 要写入的对象输出流。 - 抛出:
-
IOException
- 写入时发生问题。 -
UnsupportedOperationException
- 如果此实现不支持此操作。
-
readExternal
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException, UnsupportedOperationException Deprecated, for removal: This API element is subject to removal in a future version.从给定的
ObjectInput
中恢复此 MLet 的内容。并非所有实现都支持此方法。不支持的实现会抛出UnsupportedOperationException
。子类可以重写此方法以支持它或更改读取数据的格式。读取数据的格式未指定,但如果实现支持
readExternal(java.io.ObjectInput)
,则必须以使后者写入的内容可以被前者读取的方式支持writeExternal(java.io.ObjectOutput)
。- 指定者:
-
readExternal
在接口Externalizable
中 - 参数:
-
in
- 要从中读取的对象输入流。 - 抛出:
-
IOException
- 读取时发生问题。 -
ClassNotFoundException
- 如果无法找到要恢复的对象的类。 -
UnsupportedOperationException
- 如果此实现不支持此操作。
-
loadClass
Deprecated, for removal: This API element is subject to removal in a future version.加载一个类,如果在此 MLet 的 URLs 中找不到该类,则使用给定的
ClassLoaderRepository
。给定的 ClassLoaderRepository 可以为 null,在这种情况下,如果在此 MLet 的 URLs 中找不到该类,则会立即抛出ClassNotFoundException
。- 参数:
-
name
- 要加载的类的名称。 -
clr
- 将用于搜索给定类的 ClassLoaderRepository,如果在此 ClassLoader 中找不到该类。可能为 null。 - 返回:
- 结果 Class 对象。
- 抛出:
-
ClassNotFoundException
- 无法在此 ClassLoader 或给定的 ClassLoaderRepository 中找到指定的类。
-
findClass
Deprecated, for removal: This API element is subject to removal in a future version.这是正在重新定义的类加载器的主要方法。- 覆盖:
-
findClass
在类URLClassLoader
中 - 参数:
-
name
- 类的名称。 - 返回:
- 结果 Class 对象。
- 抛出:
-
ClassNotFoundException
- 无法找到指定的类。
-
findLibrary
Deprecated, for removal: This API element is subject to removal in a future version.返回本机库的绝对路径名。VM 调用此方法来定位属于使用此类加载器加载的类的本机库。首先在 JAR 文件中搜索库,仅使用本机库名称,如果找不到,则使用本机库名称以及体系结构特定的路径名(OSName/OSArch/OSVersion/lib/nativelibname
)。例如,在 Solaris SPARC 5.7 上搜索库 stat 将在 JAR 文件中进行如下搜索:
- libstat.so
- SunOS/sparc/5.7/lib/libstat.so
- stat.dll
- WindowsNT/x86/4.0/lib/stat.dll
更具体地说,让
nativelibname
为System.mapLibraryName
(libname)
的结果。然后按顺序在 JAR 文件中搜索以下名称:nativelibname
<os.name>/<os.arch>/<os.version>/lib/
nativelibname
其中<X>
表示使用System.getProperty(X)
,结果中的任何空格都被移除,/
代表文件分隔符字符(File.separator
)。如果此方法返回
null
,即在使用此类加载器加载的任何 JAR 文件中未找到库,则 VM 将沿着指定为java.library.path
属性的路径搜索库。- 覆盖:
-
findLibrary
在类ClassLoader
中 - 参数:
-
libname
- 库的名称。 - 返回:
- 本机库的绝对路径。
- 参见:
-
check
protected URL check(String version, URL codebase, String jarfile, MLetContent mlet) throws Exception Deprecated, for removal: This API element is subject to removal in a future version.当扩展此服务以支持缓存和版本控制时,应重写此方法。当从MLet文件中提取版本、代码库和jar文件时,它将从
getMBeansFromURL
调用,并可用于验证加载给定MBean是否正确,或者用不同的URL替换给定的URL。此方法的默认实现将返回未更改的
codebase
。- 参数:
-
version
- 本地存储的.jar
文件的版本号。 -
codebase
- 远程.jar
文件的基本URL。 -
jarfile
- 要加载的.jar
文件的名称。 -
mlet
- 代表MLET
标签的MLetContent
实例。 - 返回:
- 用于加载MBean的代码库。返回值不应为null。
- 抛出:
-
Exception
- 如果由于某种原因不应加载MBean。异常将添加到由getMBeansFromURL
返回的集合中。
-