diff --git a/dubbo-rpc-rmi/src/main/java/com/alibaba/dubbo/rpc/protocol/rmi/RmiProtocol.java b/dubbo-rpc-rmi/src/main/java/com/alibaba/dubbo/rpc/protocol/rmi/RmiProtocol.java index 50d00e6ddd..199eff6f54 100644 --- a/dubbo-rpc-rmi/src/main/java/com/alibaba/dubbo/rpc/protocol/rmi/RmiProtocol.java +++ b/dubbo-rpc-rmi/src/main/java/com/alibaba/dubbo/rpc/protocol/rmi/RmiProtocol.java @@ -199,9 +199,9 @@ public class RmiProtocol extends AbstractProtocol { try { String remoteType = type.getName() + "$Remote"; try { - return (Class) Class.forName(remoteType, true, Thread.currentThread().getContextClassLoader()); + return (Class) Class.forName(remoteType, true, type.getClassLoader()); } catch (ClassNotFoundException e) { - ClassPool pool = ClassGenerator.getClassPool(Thread.currentThread().getContextClassLoader()); + ClassPool pool = ClassGenerator.getClassPool(type.getClassLoader()); CtClass ctClass = pool.makeInterface(remoteType); ctClass.addInterface(pool.getCtClass(type.getName())); ctClass.addInterface(pool.getCtClass(Remote.class.getName()));