Skip to content

When using sofa:reference to reference jvm service in ark environment, my app occurred an NPE error #699

@elseifer

Description

@elseifer

here is some error info:

2020-09-07 13:52:14,944 [ - /// - ] ERROR boot.SpringApplication - Application run failed
java.lang.NullPointerException
at com.alipay.sofa.runtime.invoke.DynamicJvmServiceProxyFinder.findServiceProxy(DynamicJvmServiceProxyFinder.java:114)
at com.alipay.sofa.runtime.service.component.ReferenceComponent.getServiceTarget(ReferenceComponent.java:256)
at com.alipay.sofa.runtime.service.component.ReferenceComponent.isHealthy(ReferenceComponent.java:103)
at com.alipay.sofa.healthcheck.impl.ComponentHealthChecker.isHealthy(ComponentHealthChecker.java:60)
at com.alipay.sofa.healthcheck.HealthCheckerProcessor.doHealthCheck(HealthCheckerProcessor.java:136)
at
com.alipay.sofa.healthcheck.HealthCheckerProcessor.lambda$readinessHealthCheck$4(HealthCheckerProcessor.java:108)

my code to publish sofa service is:

<sofa:service interface="com.alipay.serverless.base.facade.SampleService" ref="sampleService">
        <!-- BUG ? WHEN PUBLISH BOLT, CAUSE MODULE SETUP DOWM -->
        <sofa:binding.bolt/>
 </sofa:service>

NPE occured at sofaboot codes ,because variable serviceJvmBinding is null:

JvmBinding referenceJvmBinding = (JvmBinding) contract
            .getBinding(JvmBinding.JVM_BINDING_TYPE);
JvmBinding serviceJvmBinding = (JvmBinding) serviceComponent.getService().getBinding(
            JvmBinding.JVM_BINDING_TYPE);
boolean serialize = referenceJvmBinding.getJvmBindingParam().isSerialize()
                            || serviceJvmBinding.getJvmBindingParam().isSerialize();
return new DynamicJvmServiceInvoker(clientClassloader,
            sofaRuntimeManager.getAppClassLoader(), serviceComponent.getService().getTarget(),
            contract, biz.getIdentity(), serialize);

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions