diff --git a/java/serve/src/main/java/io/ray/serve/replica/RayServeWrappedReplica.java b/java/serve/src/main/java/io/ray/serve/replica/RayServeWrappedReplica.java index 982d6ef02..ec8c2f82c 100644 --- a/java/serve/src/main/java/io/ray/serve/replica/RayServeWrappedReplica.java +++ b/java/serve/src/main/java/io/ray/serve/replica/RayServeWrappedReplica.java @@ -89,7 +89,12 @@ public class RayServeWrappedReplica implements RayServeReplica { deploymentWrapper.getConfig()); // Instantiate the object defined by deploymentDef. - Class deploymentClass = Class.forName(deploymentWrapper.getDeploymentDef()); + Class deploymentClass = + Class.forName( + deploymentWrapper.getDeploymentDef(), + true, + Optional.ofNullable(Thread.currentThread().getContextClassLoader()) + .orElse(getClass().getClassLoader())); Object callable = ReflectUtil.getConstructor(deploymentClass, deploymentWrapper.getInitArgs()) .newInstance(deploymentWrapper.getInitArgs());