模块  java.rmi
软件包  java.rmi.server

Class RMIClassLoaderSpi

    • 构造方法详细信息

      • RMIClassLoaderSpi

        public RMIClassLoaderSpi()
    • 方法详细信息

      • loadProxyClass

        public abstract <?> loadProxyClass​(String codebase,
                                                String[] interfaces,
                                                ClassLoader defaultLoader)
                                         throws MalformedURLException,
                                                ClassNotFoundException
        提供RMIClassLoader.loadProxyClass(String,String[],ClassLoader)的实现。 加载动态代理类(请参阅Proxy ,它使用代码库URL路径实现一组具有给定名称的接口,可选择使用提供的加载器。

        此方法的实现必须返回实现命名接口的代理类或抛出异常。

        参数
        codebase - 要加载类的URL列表(以空格分隔),或 null
        interfaces - 要实现的代理类的接口的名称
        defaultLoader - 要使用的其他上下文类加载器,或 null
        结果
        一个实现命名接口的动态代理类
        异常
        MalformedURLException - 如果 codebase不是 null且包含无效的URL,或者 codebasenull且用于加载类的提供程序特定的URL无效
        ClassNotFoundException - 如果在指定位置找不到某个命名接口的定义,或者动态代理类的创建失败(例如,如果 Proxy.getProxyClass(ClassLoader,Class[])将为给定的接口列表抛出 IllegalArgumentException
      • getClassLoader

        public abstract ClassLoader getClassLoader​(String codebase)
                                            throws MalformedURLException
        提供RMIClassLoader.getClassLoader(String)的实现。 返回一个类加载器,它从给定的代码库URL路径加载类。

        如果有安全经理,将以RuntimePermission("getClassLoader")权限调用其checkPermission方法; 这可能导致SecurityException 此方法的实现还可以执行进一步的安全检查,以验证调用上下文是否具有连接到代码库URL路径中的所有URL的权限。

        参数
        codebase - 返回的类加载器将从中加载类的URL列表(以空格分隔),或 null
        结果
        一个类加载器,它从给定的代码库URL路径加载类
        异常
        MalformedURLException - 如果 codebase不是 null并且包含无效的URL,或者如果 codebasenull并且用于标识类加载器的特定于提供者的URL无效
        SecurityException - 如果存在安全管理器并且其 checkPermission方法的调用失败,或者调用者没有权限连接到代码库URL路径中的所有URL
      • getClassAnnotation

        public abstract String getClassAnnotation​(<?> cl)
        提供RMIClassLoader.getClassAnnotation(Class)的实现。 返回注释字符串(表示类定义的位置),RMI将在编组给定类的对象时用于注释类描述符。
        参数
        cl - 获取注释的类
        结果
        在被编组时用于注释给定类的字符串,或 null
        异常
        NullPointerException - 如果 clnull