在 Corda 中注册 Oracle 服务时获取 IllegalArgumentException

Getting IllegalArgumentException while registering Oracle Service in Corda

我已经使用@CordaService 注释创建了 Oracle 服务

我在安装 Corda 服务时出现异常。

它不会获得定义的服务类型,在构造函数的第一个参数中的 List 对象中获得大小 0。

public NumberVerifierOracle(PluginServiceHub 服务){ 这(services.getMyInfo().serviceIdentities(NumberVerifierOracleType.getNumberVerifierOracleType().getServiceType()).get(0),服务); }

定义的服务类型是: public class NumberVerifierOracleType { 私有静态服务类型服务类型; private static NumberVerifierOracleType numberVerifierOracleType = new NumberVerifierOracleType();

private NumberVerifierOracleType(){
    serviceType = ServiceType.Companion.getServiceType("com.template.oracle.service","numberVerifierService_NumberVerifierOracle");
}

public static NumberVerifierOracleType getNumberVerifierOracleType() {
    return numberVerifierOracleType;
}

public ServiceType getServiceType() {
    return serviceType;
}

}

包层次结构是: com.template.oracle.service.NumberVerifierOracleclass

I have resolved this error by making service with Public modifier.

Like this:
public static ServiceType type;
static{
        type= NumberVerifierOracleType.getNumberVerifierOracleType().getServiceType();
 }

It will not work if we have private modifier and use directly getter method.