使用springboot连接区块链报错java.util.concurrent.ExecutionException: io.grpc.StatusRuntimeException: UNAVAILABLE: io exception
【问题分类】
- SDK相关
- 环境依赖
【问题描述】(请对问题进行描述,方便定位问题)
用的是sdk-java-demo-v2.2.0 chain_client:
链ID
chain_id: "chain"
组织ID
org_id: "TestCMorg1"
客户端用户私钥路径
user_key_file_path: "C:\Users\itsij\Downloads\sdk-java-demo-v2.2.0\src\main\resources\crypto-config\TestCMorg1\user\cmtestuser1\cmtestuser1.tls.key"
客户端用户证书路径
user_crt_file_path: "C:\Users\itsij\Downloads\sdk-java-demo-v2.2.0\src\main\resources\crypto-config\TestCMorg1\user\cmtestuser1\cmtestuser1.tls.crt"
客户端用户交易签名私钥路径(若未设置,将使用user_key_file_path)
user_sign_key_file_path: "C:\Users\itsij\Downloads\sdk-java-demo-v2.2.0\src\main\resources\crypto-config\TestCMorg1\user\cmtestuser1\cmtestuser1.sign.key"
客户端用户交易签名证书路径(若未设置,将使用user_crt_file_path)
user_sign_crt_file_path: "C:\Users\itsij\Downloads\sdk-java-demo-v2.2.0\src\main\resources\crypto-config\TestCMorg1\user\cmtestuser1\cmtestuser1.sign.crt"
retry_limit: 10
同步交易结果模式下,每次轮训交易结果时的等待时间,单位:ms 删除此项或设为<=0则使用默认值 500
retry_interval: 500
当前签名证书的别名。当设置此配置项时,chain client 对象将自动检查链上是否已添加此别名,如果没有则自动上链此证书别名,
并且后续所有交易都会使用别名,别名可降低交易体大小。若为空则不启用。
alias: mycert5
nodes: - # 节点地址,格式为:IP:端口:连接数 node_addr: "47.110.150.177:12301" # 节点连接数 conn_cnt: 4 # RPC连接是否启用双向TLS认证 enable_tls: true # 信任证书池路径 trust_root_paths: - "src/main/resources/crypto-config/TestCMorg1/ca" # TLS hostname tls_host_name: "chainmaker.org" archive: # 数据归档链外存储相关配置 type: "mysql" dest: "root:root:localhost:3306" secret_key: xxx rpc_client: # grpc客户端最大接受容量(MB) max_receive_message_size: 16
【相关日志文件】(如果有报错日志请贴图,或者上传附件)
"D:\Program Files\Java\jdk1.8.0_202\bin\java.exe" -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:29460,suspend=y,server=n -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -javaagent:C:\Users\itsij.IntelliJIdea2019.3\system\captureAgent\debugger-agent.jar -Dfile.encoding=UTF-8 -classpath "D:\Program Files\Java\jdk1.8.0_202\jre\lib\charsets.jar;D:\Program Files\Java\jdk1.8.0_202\jre\lib\deploy.jar;D:\Program Files\Java\jdk1.8.0_202\jre\lib\ext\access-bridge-64.jar;D:\Program Files\Java\jdk1.8.0_202\jre\lib\ext\cldrdata.jar;D:\Program Files\Java\jdk1.8.0_202\jre\lib\ext\dnsns.jar;D:\Program Files\Java\jdk1.8.0_202\jre\lib\ext\jaccess.jar;D:\Program Files\Java\jdk1.8.0_202\jre\lib\ext\jfxrt.jar;D:\Program Files\Java\jdk1.8.0_202\jre\lib\ext\localedata.jar;D:\Program Files\Java\jdk1.8.0_202\jre\lib\ext\nashorn.jar;D:\Program Files\Java\jdk1.8.0_202\jre\lib\ext\sunec.jar;D:\Program Files\Java\jdk1.8.0_202\jre\lib\ext\sunjce_provider.jar;D:\Program Files\Java\jdk1.8.0_202\jre\lib\ext\sunmscapi.jar;D:\Program Files\Java\jdk1.8.0_202\jre\lib\ext\sunpkcs11.jar;D:\Program Files\Java\jdk1.8.0_202\jre\lib\ext\zipfs.jar;D:\Program Files\Java\jdk1.8.0_202\jre\lib\javaws.jar;D:\Program Files\Java\jdk1.8.0_202\jre\lib\jce.jar;D:\Program Files\Java\jdk1.8.0_202\jre\lib\jfr.jar;D:\Program Files\Java\jdk1.8.0_202\jre\lib\jfxswt.jar;D:\Program Files\Java\jdk1.8.0_202\jre\lib\jsse.jar;D:\Program Files\Java\jdk1.8.0_202\jre\lib\management-agent.jar;D:\Program Files\Java\jdk1.8.0_202\jre\lib\plugin.jar;D:\Program Files\Java\jdk1.8.0_202\jre\lib\resources.jar;D:\Program Files\Java\jdk1.8.0_202\jre\lib\rt.jar;C:\Users\itsij\Downloads\sdk-java-demo-v2.2.0\target\classes;D:\soft_ware\apache-maven_repository\org\springframework\boot\spring-boot-starter-web\2.5.5\spring-boot-starter-web-2.5.5.jar;D:\soft_ware\apache-maven_repository\org\springframework\boot\spring-boot-starter\2.5.5\spring-boot-starter-2.5.5.jar;D:\soft_ware\apache-maven_repository\org\springframework\boot\spring-boot\2.5.5\spring-boot-2.5.5.jar;D:\soft_ware\apache-maven_repository\org\springframework\boot\spring-boot-autoconfigure\2.5.5\spring-boot-autoconfigure-2.5.5.jar;D:\soft_ware\apache-maven_repository\org\springframework\boot\spring-boot-starter-logging\2.5.5\spring-boot-starter-logging-2.5.5.jar;D:\soft_ware\apache-maven_repository\org\apache\logging\log4j\log4j-to-slf4j\2.14.1\log4j-to-slf4j-2.14.1.jar;D:\soft_ware\apache-maven_repository\org\apache\logging\log4j\log4j-api\2.14.1\log4j-api-2.14.1.jar;D:\soft_ware\apache-maven_repository\org\slf4j\jul-to-slf4j\1.7.32\jul-to-slf4j-1.7.32.jar;D:\soft_ware\apache-maven_repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;D:\soft_ware\apache-maven_repository\org\springframework\boot\spring-boot-starter-json\2.5.5\spring-boot-starter-json-2.5.5.jar;D:\soft_ware\apache-maven_repository\com\fasterxml\jackson\core\jackson-databind\2.12.5\jackson-databind-2.12.5.jar;D:\soft_ware\apache-maven_repository\com\fasterxml\jackson\core\jackson-annotations\2.12.5\jackson-annotations-2.12.5.jar;D:\soft_ware\apache-maven_repository\com\fasterxml\jackson\core\jackson-core\2.12.5\jackson-core-2.12.5.jar;D:\soft_ware\apache-maven_repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.12.5\jackson-datatype-jdk8-2.12.5.jar;D:\soft_ware\apache-maven_repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.12.5\jackson-datatype-jsr310-2.12.5.jar;D:\soft_ware\apache-maven_repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.12.5\jackson-module-parameter-names-2.12.5.jar;D:\soft_ware\apache-maven_repository\org\springframework\boot\spring-boot-starter-tomcat\2.5.5\spring-boot-starter-tomcat-2.5.5.jar;D:\soft_ware\apache-maven_repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.53\tomcat-embed-core-9.0.53.jar;D:\soft_ware\apache-maven_repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.53\tomcat-embed-el-9.0.53.jar;D:\soft_ware\apache-maven_repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.53\tomcat-embed-websocket-9.0.53.jar;D:\soft_ware\apache-maven_repository\org\springframework\spring-web\5.3.10\spring-web-5.3.10.jar;D:\soft_ware\apache-maven_repository\org\springframework\spring-beans\5.3.10\spring-beans-5.3.10.jar;D:\soft_ware\apache-maven_repository\org\springframework\spring-webmvc\5.3.10\spring-webmvc-5.3.10.jar;D:\soft_ware\apache-maven_repository\org\springframework\spring-aop\5.3.10\spring-aop-5.3.10.jar;D:\soft_ware\apache-maven_repository\org\springframework\spring-context\5.3.10\spring-context-5.3.10.jar;D:\soft_ware\apache-maven_repository\org\springframework\spring-expression\5.3.10\spring-expression-5.3.10.jar;D:\soft_ware\apache-maven_repository\org\slf4j\slf4j-api\1.7.32\slf4j-api-1.7.32.jar;D:\soft_ware\apache-maven_repository\org\springframework\spring-core\5.3.10\spring-core-5.3.10.jar;D:\soft_ware\apache-maven_repository\org\springframework\spring-jcl\5.3.10\spring-jcl-5.3.10.jar;D:\soft_ware\apache-maven_repository\org\chainmaker\chainmaker-sdk-java\2.2.0\chainmaker-sdk-java-2.2.0.jar;D:\soft_ware\apache-maven_repository\mysql\mysql-connector-java\8.0.26\mysql-connector-java-8.0.26.jar;D:\soft_ware\apache-maven_repository\ch\qos\logback\logback-classic\1.2.6\logback-classic-1.2.6.jar;D:\soft_ware\apache-maven_repository\ch\qos\logback\logback-core\1.2.6\logback-core-1.2.6.jar;D:\soft_ware\apache-maven_repository\org\yaml\snakeyaml\1.28\snakeyaml-1.28.jar;D:\soft_ware\apache-maven_repository\com\esotericsoftware\yamlbeans\yamlbeans\1.15\yamlbeans-1.15.jar;C:\Users\itsij\Downloads\sdk-java-demo-v2.2.0\lib\netty-tcnative-openssl-static-2.0.39.Final.jar;D:\soft_ware\apache-maven_repository\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar;D:\soft_ware\apache-maven_repository\org\bouncycastle\bcpkix-jdk15on\1.62\bcpkix-jdk15on-1.62.jar;D:\soft_ware\apache-maven_repository\org\bouncycastle\bcprov-jdk15on\1.62\bcprov-jdk15on-1.62.jar;D:\soft_ware\apache-maven_repository\commons-io\commons-io\2.6\commons-io-2.6.jar;D:\soft_ware\apache-maven_repository\com\alibaba\fastjson\1.2.62\fastjson-1.2.62.jar;D:\soft_ware\apache-maven_repository\commons-logging\commons-logging\1.2\commons-logging-1.2.jar;D:\soft_ware\apache-maven_repository\com\google\protobuf\protobuf-java-util\3.2.0\protobuf-java-util-3.2.0.jar;D:\soft_ware\apache-maven_repository\com\google\code\gson\gson\2.8.8\gson-2.8.8.jar;D:\soft_ware\apache-maven_repository\io\netty\netty-handler\4.1.53.Final\netty-handler-4.1.53.Final.jar;D:\soft_ware\apache-maven_repository\io\netty\netty-common\4.1.68.Final\netty-common-4.1.68.Final.jar;D:\soft_ware\apache-maven_repository\io\netty\netty-resolver\4.1.68.Final\netty-resolver-4.1.68.Final.jar;D:\soft_ware\apache-maven_repository\io\netty\netty-buffer\4.1.68.Final\netty-buffer-4.1.68.Final.jar;D:\soft_ware\apache-maven_repository\io\netty\netty-transport\4.1.68.Final\netty-transport-4.1.68.Final.jar;D:\soft_ware\apache-maven_repository\io\netty\netty-codec\4.1.68.Final\netty-codec-4.1.68.Final.jar;D:\soft_ware\apache-maven_repository\io\grpc\grpc-api\1.23.0\grpc-api-1.23.0.jar;D:\soft_ware\apache-maven_repository\io\grpc\grpc-context\1.23.0\grpc-context-1.23.0.jar;D:\soft_ware\apache-maven_repository\com\google\errorprone\error_prone_annotations\2.3.2\error_prone_annotations-2.3.2.jar;D:\soft_ware\apache-maven_repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;D:\soft_ware\apache-maven_repository\org\codehaus\mojo\animal-sniffer-annotations\1.17\animal-sniffer-annotations-1.17.jar;D:\soft_ware\apache-maven_repository\com\google\guava\guava\26.0-android\guava-26.0-android.jar;D:\soft_ware\apache-maven_repository\org\checkerframework\checker-compat-qual\2.5.2\checker-compat-qual-2.5.2.jar;D:\soft_ware\apache-maven_repository\com\google\j2objc\j2objc-annotations\1.1\j2objc-annotations-1.1.jar;D:\soft_ware\apache-maven_repository\io\grpc\grpc-netty\1.23.0\grpc-netty-1.23.0.jar;D:\soft_ware\apache-maven_repository\io\grpc\grpc-core\1.23.0\grpc-core-1.23.0.jar;D:\soft_ware\apache-maven_repository\com\google\android\annotations\4.1.1.4\annotations-4.1.1.4.jar;D:\soft_ware\apache-maven_repository\io\perfmark\perfmark-api\0.17.0\perfmark-api-0.17.0.jar;D:\soft_ware\apache-maven_repository\io\opencensus\opencensus-api\0.21.0\opencensus-api-0.21.0.jar;D:\soft_ware\apache-maven_repository\io\opencensus\opencensus-contrib-grpc-metrics\0.21.0\opencensus-contrib-grpc-metrics-0.21.0.jar;D:\soft_ware\apache-maven_repository\io\netty\netty-codec-http2\4.1.68.Final\netty-codec-http2-4.1.68.Final.jar;D:\soft_ware\apache-maven_repository\io\netty\netty-codec-http\4.1.68.Final\netty-codec-http-4.1.68.Final.jar;D:\soft_ware\apache-maven_repository\io\netty\netty-handler-proxy\4.1.68.Final\netty-handler-proxy-4.1.68.Final.jar;D:\soft_ware\apache-maven_repository\io\netty\netty-codec-socks\4.1.68.Final\netty-codec-socks-4.1.68.Final.jar;D:\soft_ware\apache-maven_repository\io\grpc\grpc-stub\1.23.0\grpc-stub-1.23.0.jar;D:\soft_ware\apache-maven_repository\io\grpc\grpc-protobuf\1.23.0\grpc-protobuf-1.23.0.jar;D:\soft_ware\apache-maven_repository\com\google\protobuf\protobuf-java\3.9.0\protobuf-java-3.9.0.jar;D:\soft_ware\apache-maven_repository\com\google\api\grpc\proto-google-common-protos\1.12.0\proto-google-common-protos-1.12.0.jar;D:\soft_ware\apache-maven_repository\io\grpc\grpc-protobuf-lite\1.23.0\grpc-protobuf-lite-1.23.0.jar;D:\soft_ware\apache-maven_repository\org\web3j\abi\5.0.0\abi-5.0.0.jar;D:\soft_ware\apache-maven_repository\org\web3j\utils\5.0.0\utils-5.0.0.jar;D:\soft_ware\apache-maven_repository\net\java\dev\jna\jna\5.6.0\jna-5.6.0.jar;C:\Users\itsij\Downloads\sdk-java-demo-v2.3.2\lib\netty-tcnative-openssl-static-2.0.39.Final.jar;D:\Program Files\JetBrains\IntelliJ IDEA 2019.3.1\lib\idea_rt.jar" chainmaker.sdk.demo.DemoApplication Connected to the target VM, address: '127.0.0.1:29460', transport: 'socket'
. ____ _ __ _ _
/\ / ' __ _ () __ __ _ \ \ \
( ( )__ | '_ | '| | ' / ` | \ \ \
\/ )| |)| | | | | || (| | ) ) ) )
' || .__|| ||| |_, | / / / /
=========||==============|/=////
:: Spring Boot :: (v2.5.5)
2025-05-27 10:17:59.135 INFO 25376 --- [ main] chainmaker.sdk.demo.DemoApplication : Starting DemoApplication using Java 1.8.0_202 on MateBook with PID 25376 (C:\Users\itsij\Downloads\sdk-java-demo-v2.2.0\target\classes started by itsij in C:\Users\itsij\Downloads\sdk-java-demo-v2.2.0) 2025-05-27 10:17:59.137 INFO 25376 --- [ main] chainmaker.sdk.demo.DemoApplication : No active profile set, falling back to default profiles: default 2025-05-27 10:17:59.613 INFO 25376 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 2025-05-27 10:17:59.621 INFO 25376 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2025-05-27 10:17:59.621 INFO 25376 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.53] 2025-05-27 10:17:59.672 INFO 25376 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2025-05-27 10:17:59.672 INFO 25376 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 511 ms 2025-05-27 10:17:59.938 INFO 25376 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2025-05-27 10:17:59.938 INFO 25376 --- [ main] chainmaker.sdk.demo.DemoApplication : Started DemoApplication in 1.034 seconds (JVM running for 1.501) 2025-05-27 10:18:01.046 ERROR 25376 --- [ main] org.chainmaker.sdk.ChainClient : connect to peer error :
java.util.concurrent.ExecutionException: io.grpc.StatusRuntimeException: UNAVAILABLE: io exception Channel Pipeline: [SslHandler#0, ProtocolNegotiators$ClientTlsHandler#0, WriteBufferingAndExceptionHandler#0, DefaultChannelPipeline$TailContext#0] at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:531) ~[guava-26.0-android.jar:na] at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:423) ~[guava-26.0-android.jar:na] at org.chainmaker.sdk.ChainClient.sendTxRequest(ChainClient.java:1918) [chainmaker-sdk-java-2.2.0.jar:na] at org.chainmaker.sdk.ChainClient.sendRequest(ChainClient.java:2070) [chainmaker-sdk-java-2.2.0.jar:na] at org.chainmaker.sdk.ChainClient.proposalRequest(ChainClient.java:2047) [chainmaker-sdk-java-2.2.0.jar:na] at org.chainmaker.sdk.ChainClient.getChainConfig(ChainClient.java:812) [chainmaker-sdk-java-2.2.0.jar:na] at chainmaker.sdk.demo.ChainConfig.getChainConfig(ChainConfig.java:11) [classes/:na] at chainmaker.sdk.demo.DemoApplication.main(DemoApplication.java:16) [classes/:na] Caused by: io.grpc.StatusRuntimeException: UNAVAILABLE: io exception Channel Pipeline: [SslHandler#0, ProtocolNegotiators$ClientTlsHandler#0, WriteBufferingAndExceptionHandler#0, DefaultChannelPipeline$TailContext#0] at io.grpc.Status.asRuntimeException(Status.java:533) ~[grpc-api-1.23.0.jar:1.23.0] at io.grpc.stub.ClientCalls$UnaryStreamToFuture.onClose(ClientCalls.java:490) ~[grpc-stub-1.23.0.jar:1.23.0] at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39) ~[grpc-api-1.23.0.jar:1.23.0] at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23) ~[grpc-api-1.23.0.jar:1.23.0] at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40) ~[grpc-api-1.23.0.jar:1.23.0] at io.grpc.internal.CensusStatsModule$StatsClientInterceptor$1$1.onClose(CensusStatsModule.java:700) ~[grpc-core-1.23.0.jar:1.23.0] at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39) ~[grpc-api-1.23.0.jar:1.23.0] at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23) ~[grpc-api-1.23.0.jar:1.23.0] at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40) ~[grpc-api-1.23.0.jar:1.23.0] at io.grpc.internal.CensusTracingModule$TracingClientInterceptor$1$1.onClose(CensusTracingModule.java:399) ~[grpc-core-1.23.0.jar:1.23.0] at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:510) ~[grpc-core-1.23.0.jar:1.23.0] at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:66) ~[grpc-core-1.23.0.jar:1.23.0] at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.close(ClientCallImpl.java:630) ~[grpc-core-1.23.0.jar:1.23.0] at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.access$700(ClientCallImpl.java:518) ~[grpc-core-1.23.0.jar:1.23.0] at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:692) ~[grpc-core-1.23.0.jar:1.23.0] at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:681) ~[grpc-core-1.23.0.jar:1.23.0] at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37) ~[grpc-core-1.23.0.jar:1.23.0] at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123) ~[grpc-core-1.23.0.jar:1.23.0] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_202] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_202] at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_202] Caused by: java.io.IOException: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆� at sun.nio.ch.SocketDispatcher.read0(Native Method) ~[na:1.8.0_202] at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43) ~[na:1.8.0_202] at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) ~[na:1.8.0_202] at sun.nio.ch.IOUtil.read(IOUtil.java:192) ~[na:1.8.0_202] at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) ~[na:1.8.0_202] at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:253) ~[netty-buffer-4.1.68.Final.jar:4.1.68.Final] at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1132) ~[netty-buffer-4.1.68.Final.jar:4.1.68.Final] at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:350) ~[netty-transport-4.1.68.Final.jar:4.1.68.Final] at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151) ~[netty-transport-4.1.68.Final.jar:4.1.68.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719) ~[netty-transport-4.1.68.Final.jar:4.1.68.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655) ~[netty-transport-4.1.68.Final.jar:4.1.68.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581) ~[netty-transport-4.1.68.Final.jar:4.1.68.Final] at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493) ~[netty-transport-4.1.68.Final.jar:4.1.68.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986) ~[netty-common-4.1.68.Final.jar:4.1.68.Final] at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.68.Final.jar:4.1.68.Final] at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.68.Final.jar:4.1.68.Final] ... 1 common frames omitted
org.chainmaker.sdk.ChainClientException: connect to peer error : io.grpc.StatusRuntimeException: UNAVAILABLE: io exception Channel Pipeline: [SslHandler#0, ProtocolNegotiators$ClientTlsHandler#0, WriteBufferingAndExceptionHandler#0, DefaultChannelPipeline$TailContext#0] at org.chainmaker.sdk.ChainClient.sendTxRequest(ChainClient.java:1921) at org.chainmaker.sdk.ChainClient.sendRequest(ChainClient.java:2070) at org.chainmaker.sdk.ChainClient.proposalRequest(ChainClient.java:2047) at org.chainmaker.sdk.ChainClient.getChainConfig(ChainClient.java:812) at chainmaker.sdk.demo.ChainConfig.getChainConfig(ChainConfig.java:11) at chainmaker.sdk.demo.DemoApplication.main(DemoApplication.java:16) Exception in thread "main" java.lang.NullPointerException at chainmaker.sdk.demo.ChainConfig.getChainConfig(ChainConfig.java:15) at chainmaker.sdk.demo.DemoApplication.main(DemoApplication.java:16)