Java SDK Demo相关使用问题
- 区块链应用端使用Fabric开源版本的java SDK还是使用华为的SDK?
- 区块链应用端对接Fabric 2.0版本也使用Java Demo中自带的SDK 1.4.1版本吗?
- 区块链应用端调用链代码报错:
“Caused by: java.lang.NoClassDefFoundError: io/netty/internal/tcnative/SSLPrivateKeyMethod at io.netty.handler.ssl.SslContext.newClientContextInternal(SslContext.java:827) ~[netty-handler-4.1.44.Final.jar:4.1.44.Final] at io.netty.handler.ssl.SslContextBuilder.build(SslContextBuilder.java:576) ~[netty-handler-4.1.44.Final.jar:4.1.44.Final] ...”
答:Fabric SDK依赖的netty和原工程中依赖的版本不同导致,可以从jar包查询相关依赖的版本信息。
- 区块链应用端调用链代码报错:
“failed because of: gRPC failure=Status{code=UNAVAILABLE, description=io exception, cause=javax.net.ssl.SSLHandshakeException: General OpenSslEngine problem”
答:区块链应用端和Peer节点建立SSL连接失败,需要使用Java Demo中自带的Fabric SDK版本。
- 区块链应用端调用链代码报错:
“Expected only one set of consistent proposal responses but got testuser: 1000”
答:区块链应用端向Peer节点发送交易提案背书失败,请检查链代码日志。
- 区块链应用端调用链代码报错:
“Caused by: java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;CLjava/lang/Object;)V at io.grpc.Metadata$Key.validateName(Metadata.java:630) ~[fabric-sdk-java-1.4.1-jar-with-dependencies.jar:na] at io.grpc.Metadata$Key.<init>(Metadata.java:638) ~[fabric-sdk-java-1.4.1-jar-with-dependencies.jar:na] at io.grpc.Metadata$Key.<init>(Metadata.java:568) ~[fabric-sdk-java-1.4.1-jar-with-dependencies.jar:na] at io.grpc.Metadata$AsciiKey.<init>(Metadata.java:743) ~[fabric-sdk-java-1.4.1-jar-with-dependencies.jar:na] at io.grpc.Metadata$AsciiKey.<init>(Metadata.java:738) ~[fabric-sdk-java-1.4.1-jar-with-dependencies.jar:na] at io.grpc.Metadata$Key.of(Metadata.java:594) ~[fabric-sdk-java-1.4.1-jar-with-dependencies.jar:na] at io.grpc.Metadata$Key.of(Metadata.java:590) ~[fabric-sdk-java-1.4.1-jar-with-dependencies.jar:na] at io.grpc.internal.GrpcUtil.<clinit>(GrpcUtil.java:84) ~[fabric-sdk-java-1.4.1-jar-with-dependencies.jar:na] at io.grpc.internal.AbstractManagedChannelImplBuilder.<clinit>(AbstractManagedChannelImplBuilder.java:83) ~[fabric-sdk-java-1.4.1-jar-with-dependencies.jar:na] ...”
答:Fabric SDK依赖的io.grpc和原工程中依赖的版本不同导致,请根据实际情况解决此冲突。
- 在ARM架构类型下使用JAVA SDK DEMO报错:
答:Hyperledger开源社区提供的Java SDK不支持在ARM环境下使用。华为提供的国密加密SDK,增加了对ARM场景的支持,如果需要在集群CPU架构类型为ARM架构场景下使用JAVA SDK DEMO示例或真实业务应用,需要使用华为提供的国密加密SDK,获取方法:登录区块链服务管理控制台,进入“应用案例”,单击“国密加密SDK”中Fabric_SDK_Java的“下载”按钮。详细请参考国密加密。