所有类


javax.management.loading
类 MLet

java.lang.Object
  继承者 java.lang.ClassLoader
      继承者 java.security.SecureClassLoader
          继承者 java.net.URLClassLoader
              继承者 javax.management.loading.MLet
所有已实现的接口:
Externalizable, Serializable, MLetMBean, MBeanRegistration
直接已知子类:
PrivateMLet

public class MLet
   
   
   
   
   
extends URLClassLoader
implements MLetMBean, MBeanRegistration, Externalizable

允许实例化和注册来自远程 URL 的 MBean 服务器中一个或几个 MBean。M-let 是管理 applet 的捷径。m-let 服务通过加载一个 m-let 文本文件来完成此功能,该文本文件指定了要获取的 MBean 上的信息。每个 MBean 上的信息是在标记的单个实例中指定的,该标记称为 MLET 标记。m-let 文本文件的位置由 URL 指定。

MLET 标记具有以下语法:

<MLET
CODE = class | OBJECT = serfile
ARCHIVE = "archiveList"
[CODEBASE = codebaseURL]
[NAME = mbeanname]
[VERSION = version]
>
[arglist]
</MLET>

其中:

CODE = class
此属性指定了要获取的 MBean 的 Java 类的全名,包括包名称。编译后的 MBean 的 .class 文件必须包含在由 ARCHIVE 属性指定的 .jar 文件中。CODEOBJECT 必须存在。
OBJECT = serfile
此属性指定了 .ser 文件,该文件包含要获取的 MBean 的序列化表示形式。此文件必须包含在由 ARCHIVE 属性指定的 .jar 文件中。如果 .jar 文件包含目录层次结构,则要指定此层次结构中的文件路径。否则将找不到匹配。CODEOBJECT 必须存在。
ARCHIVE = "archiveList"
此必需的属性指定了一个或多个 .jar 文件,这些文件包含要获取的 MBean 所使用的 MBean 或其他资源。.jar 文件之一必须包含 CODEOBJECT 属性所指定的文件。如果 archivelist 包含多个文件:
  • 必须用逗号 (,) 将每个文件与它后面的文件隔开。
  • archivelist 必须用双引号引起来。
archivelist 中的所有 .jar 文件必须存储在代码基 URL 所指定的目录中。
CODEBASE = codebaseURL
此可选属性指定了要获取的 MBean 的代码基 URL。它标识了包含 ARCHIVE 所指定的 .jar 文件的目录。仅当 .jar 文件与 m-let 文本文件不在相同目录时,指定此属性。如果不指定此属性,则使用 m-let 文本文件的基本 URL。
NAME = mbeanname
当 m-let 注册了 MBean 实例时,此可选属性指定了要分配给 MBean 实例的对象名称。如果 mbeanname 以冒号字符 (:) 开始,则对象名称的域部分是代理的域。m-let 服务调用 Framework 类的 getDomain() 方法以获取此信息。
VERSION = version
此可选属性指定了要获取的 MBean 版本号和关联的 .jar 文件。此版本号可用于指定从服务器加载 .jar 文件,以便在下次调用 m-let 文本文件时更新存储在本地缓存中的文件。version 必须是一系列非负的十进制整数,每个整数通过句点与它前面的整数隔开。
arglist
此可选属性指定了要被实例化的 MBean 的一个或多个参数的列表。此列表描述了要传递给 MBean 的构造方法的参数。使用以下语法指定 arglist 中的每项:

<ARG TYPE=argumentTypeVALUE=value>

其中:
  • argumentType 是要作为参数传递给 MBean 的构造方法的参数类型。

参数列表中的参数类型应为 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 文本文件时,创建并注册该文件中所指定的每个 MBean 的实例。

m-let Service 扩展了 java.net.URLClassLoader,它能够用于加载代理的 VM 中的远程类和 jar 文件。

注意 - MLet 类加载器使用 MBeanServerFactory.getClassLoaderRepository(javax.management.MBeanServer) 来加载在已加载 jar 文件中找不到的类。

从以下版本开始:
1.5
另请参见:
序列化表格

构造方法摘要
MLet()
          使用默认的代理父 ClassLoader 构造新 MLet。
MLet(URL[] urls)
          使用默认的代理父 ClassLoader 为指定的 URL 构造新 MLet。
MLet(URL[] urls, boolean delegateToCLR)
          使用默认的代理父 ClassLoader 为指定的 URL 构造新 MLet。
MLet(URL[] urls, ClassLoader parent)
          为给定的 URL 构造新 MLet。
MLet(URL[] urls, ClassLoader parent, boolean delegateToCLR)
          为给定的 URL 构造新 MLet。
MLet(URL[] urls, ClassLoader parent, URLStreamHandlerFactory factory)
          为指定的 URL、父类加载器和 URLStreamHandlerFactory 构造新 MLet。
MLet(URL[] urls, ClassLoader parent, URLStreamHandlerFactory factory, boolean delegateToCLR)
          为指定的 URL、父类加载器和 URLStreamHandlerFactory 构造新 MLet。
 
方法摘要
 voidaddURL(String url)
          将指定的 URL 追加到 URL 列表中,以便搜索类和资源。
 voidaddURL(URL url)
          将指定的 URL 追加到 URL 列表中,以便搜索类和资源。
protected  URLcheck(String version, URL codebase, String jarfile, javax.management.loading.MLetContent mlet)
          当扩展此服务以支持缓存和版本控制时,要重写此方法。
protected  ClassfindClass(String name)
          这是要重新定义的类加载器的主要方法。
protected  StringfindLibrary(String libname)
          返回本机库的绝对路径名称。
 StringgetLibraryDirectory()
          获取库加载器在将本机库加载到内存中之前用于存储这些本机库的当前目录。
 SetgetMBeansFromURL(String url)
          加载一个包含 MLET 标记的文本文件,这些标记定义了要添加到代理的 MBean。
 SetgetMBeansFromURL(URL url)
          加载一个包含 MLET 标记的文本文件,这些标记定义了要添加到代理的 MBean。
 URL[]getURLs()
          返回用于加载类和资源的 URL 搜索路径。
 ClassloadClass(String name, ClassLoaderRepository clr)
          如果在此 MLet 的 URL 中找不到某个类,则使用给定的 ClassLoaderRepository 加载该类。
 voidpostDeregister()
          允许 m-let 在已从 MBean 服务器注销之后执行任何所需要的操作。
 voidpostRegister(Boolean registrationDone)
          允许 m-let 在已被注册到 MBean 服务器之后或注册已失败之后执行任何所需要的操作。
 voidpreDeregister()
          允许 m-let 在被 MBean 服务器注销之前执行任何所需要的操作。
 ObjectNamepreRegister(MBeanServer server, ObjectName name)
          允许 m-let 在被注册到 MBean 之前执行任何所需要的操作。
 voidreadExternal(ObjectInput in)
          从给定的 ObjectInput 恢复此 MLet 的内容。
 voidsetLibraryDirectory(String libdir)
          设置库加载器在将本机库加载到内存中之前用于存储这些本机库的目录。
 voidwriteExternal(ObjectOutput out)
          将此 MLet 的内容保存到给定的 ObjectOutput
 
从类 java.net.URLClassLoader 继承的方法
definePackage, findResource, findResources, getPermissions, newInstance, newInstance
 
从类 java.security.SecureClassLoader 继承的方法
defineClass, defineClass
 
从类 java.lang.ClassLoader 继承的方法
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLoadedClass, findSystemClass, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, loadClass, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
从接口 javax.management.loading.MLetMBean 继承的方法
getResource, getResourceAsStream, getResources
 

构造方法详细信息

MLet

public MLet()
使用默认的代理父 ClassLoader 构造新 MLet。


MLet

public MLet(URL[] urls)
使用默认的代理父 ClassLoader 为指定的 URL 构造新 MLet。首先在父类加载器中搜索 URL,然后按照为类和资源指定的顺序搜索 URL。

参数:
urls - 从其位置加载类和资源的 URL。

MLet

public MLet(URL[] urls,
            ClassLoader parent)
为给定的 URL 构造新 MLet。首先在指定的父类加载器中搜索 URL,然后按照为类和资源指定的顺序搜索 URL。该父参数将用作代理的父类加载器。

参数:
urls - 从其位置加载类和资源的 URL。
parent - 代理的父类加载器。

MLet

public MLet(URL[] urls,
            ClassLoader parent,
            URLStreamHandlerFactory factory)
为指定的 URL、父类加载器和 URLStreamHandlerFactory 构造新 MLet。该父参数将用作代理的父类加载器。该工厂参数将用作创建新 URL 时获取协议处理程序的流处理程序工厂。

参数:
urls - 从其位置加载类和资源的 URL。
parent - 代理的父类加载器。
factory - 创建 URL 时要使用的 URLStreamHandlerFactory。

MLet

public MLet(URL[] urls,
            boolean delegateToCLR)
使用默认的代理父 ClassLoader 为指定的 URL 构造新 MLet。首先在父类加载器中搜索 URL,然后按照为类和资源指定的顺序搜索 URL。

参数:
urls - 从其位置加载类和资源的 URL。
delegateToCLR - 当某个类在父 ClassLoader 或 URL 中均未找到时,如果 MLet 应该委托给其包含的 MBeanServer 的 ClassLoaderRepository,则为 true。

MLet

public MLet(URL[] urls,
            ClassLoader parent,
            boolean delegateToCLR)
为给定的 URL 构造新 MLet。首先在指定的父类加载器中搜索 URL,然后按照为类和资源指定的顺序搜索 URL。该父参数将用作代理的父类加载器。

参数:
urls - 从其位置加载类和资源的 URL。
parent - 代理的父类加载器。
delegateToCLR - 当某个类在父 ClassLoader 或 URL 中均未找到时,如果 MLet 应该委托给其包含的 MBeanServer 的 ClassLoaderRepository,则为 true。

MLet

public MLet(URL[] urls,
            ClassLoader parent,
            URLStreamHandlerFactory factory,
            boolean delegateToCLR)
为指定的 URL、父类加载器和 URLStreamHandlerFactory 构造新 MLet。该父参数将用作代理的父类加载器。该工厂参数将用作创建新 URL 时获取协议处理程序的流处理程序工厂。

参数:
urls - 从其位置加载类和资源的 URL。
parent - 代理的父类加载器。
factory - 创建 URL 时要使用的 URLStreamHandlerFactory。
delegateToCLR - 当某个类在父 ClassLoader 或 URL 中均未找到时,如果 MLet 应该委托给其包含的 MBeanServer 的 ClassLoaderRepository,则为 true。
方法详细信息

addURL

public void addURL(URL url)
将指定的 URL 追加到 URL 列表中,以便搜索类和资源。

指定者:
接口 MLetMBean 中的 addURL
覆盖:
URLClassLoader 中的 addURL
参数:
url - 将添加到 URL 搜索路径中的 URL