diff --git a/sofa-boot-project/sofa-boot-core/runtime-sofa-boot/src/main/java/com/alipay/sofa/runtime/invoke/DynamicJvmServiceProxyFinder.java b/sofa-boot-project/sofa-boot-core/runtime-sofa-boot/src/main/java/com/alipay/sofa/runtime/invoke/DynamicJvmServiceProxyFinder.java index cb0928616..4181dfcd8 100644 --- a/sofa-boot-project/sofa-boot-core/runtime-sofa-boot/src/main/java/com/alipay/sofa/runtime/invoke/DynamicJvmServiceProxyFinder.java +++ b/sofa-boot-project/sofa-boot-core/runtime-sofa-boot/src/main/java/com/alipay/sofa/runtime/invoke/DynamicJvmServiceProxyFinder.java @@ -130,8 +130,14 @@ public ServiceProxy findServiceProxy(ClassLoader clientClassloader, Contract con .getBinding(JvmBinding.JVM_BINDING_TYPE); JvmBinding serviceJvmBinding = (JvmBinding) serviceComponent.getService().getBinding( JvmBinding.JVM_BINDING_TYPE); - boolean serialize = referenceJvmBinding.getJvmBindingParam().isSerialize() - || serviceJvmBinding.getJvmBindingParam().isSerialize(); + boolean serialize; + if (serviceJvmBinding != null) { + serialize = referenceJvmBinding.getJvmBindingParam().isSerialize() + || serviceJvmBinding.getJvmBindingParam().isSerialize(); + } else { + // Service provider don't intend to publish JVM service, serialize is considered to be true in this case + serialize = true; + } return new DynamicJvmServiceInvoker(clientClassloader, sofaRuntimeManager.getAppClassLoader(), serviceComponent.getService().getTarget(), contract, biz.getIdentity(), serialize);