|
14 | 14 | ```eval_rst
|
15 | 15 | .. important::
|
16 | 16 |
|
17 |
| - - java版本 |
18 |
| - 要求 `JDK8或以上 <https://openjdk.java.net/>`_。由于CentOS的yum仓库的OpenJDK缺少JCE(Java Cryptography Extension),导致Web3SDK无法正常连接区块链节点,因此在使用CentOS操作系统时,推荐从OpenJDK网站自行下载。`下载地址 <https://jdk.java.net/java-se-ri/8>`_ `安装指南 <https://openjdk.java.net/install/index.html>`_ |
| 17 | + - Java版本 |
| 18 | + JDK1.8 或者以上版本,推荐使用OracleJDK。 |
| 19 | + |
| 20 | + **注意**:CentOS的yum仓库的OpenJDK缺少JCE(Java Cryptography Extension),会导致JavaSDK无法正常连接区块链节点。 |
| 21 | + - Java安装 |
| 22 | + 参考 `Java环境配置 <../manual/console.html#java>`_ |
19 | 23 | - FISCO BCOS区块链环境搭建
|
20 | 24 | 参考 `FISCO BCOS安装教程 <../installation.html>`_
|
21 | 25 | - 网络连通性
|
22 |
| - 检查Web3SDK连接的FISCO BCOS节点channel_listen_port是否能telnet通,若telnet不通,需要检查网络连通性和安全策略。 |
| 26 | + 检查Web3SDK连接的FISCO BCOS节点`channel_listen_port`是否能telnet通,若telnet不通,需要检查网络连通性和安全策略。 |
23 | 27 |
|
24 | 28 | ```
|
25 | 29 |
|
@@ -484,7 +488,7 @@ TransactionDecoder txDecodeSampleDecoder = TransactionDecoderFactory.buildTransa
|
484 | 488 | ```
|
485 | 489 |
|
486 | 490 | #### 解析input
|
487 |
| -调用``` function echo(uint256 _u,int256 _i,bool _b,address _addr,bytes32 _bs32, string _s,bytes _bs) ``` 接口,输入参数为```[ 111111 -1111111 false 0x692a70d2e424a56d2c6c27aa97d1a86395877b3a abcdefghiabcdefghiabcdefghiabhji 章鱼小丸子ljjkl;adjsfkljlkjl sadfljkjkljkl ]``` |
| 491 | +调用``` function echo(uint256 _u,int256 _i,bool _b,address _addr,bytes32 _bs32, string _s,bytes _bs) ``` 接口,输入参数为```[ 111111 -1111111 false 0x692a70d2e424a56d2c6c27aa97d1a86395877b3a abcdefghiabcdefghiabcdefghiabhji FISCO-BCOS nice ]``` |
488 | 492 | ```java
|
489 | 493 | // function echo(uint256 _u,int256 _i,bool _b,address _addr,bytes32 _bs32, string _s,bytes _bs)
|
490 | 494 | String input = "0x406d373b000000000000000000000000000000000000000000000000000000000001b207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef0bb90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000692a70d2e424a56d2c6c27aa97d1a86395877b3a6162636465666768696162636465666768696162636465666768696162686a6900000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000021e7aba0e9b1bce5b08fe4b8b8e5ad906c6a6a6b6c3b61646a73666b6c6a6c6b6a6c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d736164666c6a6b6a6b6c6a6b6c00000000000000000000000000000000000000";
|
@@ -529,12 +533,12 @@ json =>
|
529 | 533 | {
|
530 | 534 | "name": "_s",
|
531 | 535 | "type": "string",
|
532 |
| - "data": "章鱼小丸子ljjkl;adjsfkljlkjl" |
| 536 | + "data": "FISCO-BCOS" |
533 | 537 | },
|
534 | 538 | {
|
535 | 539 | "name": "_bs",
|
536 | 540 | "type": "bytes",
|
537 |
| - "data": "sadfljkjkljkl" |
| 541 | + "data": "nice" |
538 | 542 | }
|
539 | 543 | ]
|
540 | 544 | }
|
@@ -578,18 +582,18 @@ InputAndOutputResult[
|
578 | 582 | ResultEntity[
|
579 | 583 | name=_s,
|
580 | 584 | type=string,
|
581 |
| - data=章鱼小丸子ljjkl;adjsfkljlkjl |
| 585 | + data=FISCO-BCOS |
582 | 586 | ],
|
583 | 587 | ResultEntity[
|
584 | 588 | name=_bs,
|
585 | 589 | type=bytes,
|
586 |
| - data=sadfljkjkljkl |
| 590 | + data=nice |
587 | 591 | ]
|
588 | 592 | ]
|
589 | 593 | ]
|
590 | 594 | ```
|
591 | 595 | #### 解析output
|
592 |
| -调用``` function echo(uint256 _u,int256 _i,bool _b,address _addr,bytes32 _bs32, string _s,bytes _bs) ``` 接口,输入参数为```[ 111111 -1111111 false 0x692a70d2e424a56d2c6c27aa97d1a86395877b3a abcdefghiabcdefghiabcdefghiabhji 章鱼小丸子ljjkl;adjsfkljlkjl sadfljkjkljkl ]```,echo接口直接将输入返回,因此返回与输入相同 |
| 596 | +调用``` function echo(uint256 _u,int256 _i,bool _b,address _addr,bytes32 _bs32, string _s,bytes _bs) ``` 接口,输入参数为```[ 111111 -1111111 false 0x692a70d2e424a56d2c6c27aa97d1a86395877b3a abcdefghiabcdefghiabcdefghiabhji FISCO-BCOS nice ]```,echo接口直接将输入返回,因此返回与输入相同 |
593 | 597 |
|
594 | 598 | ```java
|
595 | 599 | // function echo(uint256 _u,int256 _i,bool _b,address _addr,bytes32 _bs32, string _s,bytes _bs) public constant returns (uint256,int256,bool,address,bytes32,string,bytes)
|
@@ -638,12 +642,12 @@ json =>
|
638 | 642 | {
|
639 | 643 | "name": "",
|
640 | 644 | "type": "string",
|
641 |
| - "data": "章鱼小丸子ljjkl;adjsfkljlkjl" |
| 645 | + "data": "FISCO-BCOS" |
642 | 646 | },
|
643 | 647 | {
|
644 | 648 | "name": "",
|
645 | 649 | "type": "bytes",
|
646 |
| - "data": "sadfljkjkljkl" |
| 650 | + "data": "nice" |
647 | 651 | }
|
648 | 652 | ]
|
649 | 653 | }
|
@@ -687,20 +691,20 @@ InputAndOutputResult[
|
687 | 691 | ResultEntity[
|
688 | 692 | name=,
|
689 | 693 | type=string,
|
690 |
| - data=章鱼小丸子ljjkl;adjsfkljlkjl |
| 694 | + data=FISCO-BCOS |
691 | 695 | ],
|
692 | 696 | ResultEntity[
|
693 | 697 | name=,
|
694 | 698 | type=bytes,
|
695 |
| - data=sadfljkjkljkl |
| 699 | + data=nice |
696 | 700 | ]
|
697 | 701 | ]
|
698 | 702 | ]
|
699 | 703 | ```
|
700 | 704 |
|
701 | 705 | #### 解析event logs
|
702 | 706 |
|
703 |
| -调用``` function do_event(uint256 _u,int256 _i,bool _b,address _addr,bytes32 _bs32, string _s,bytes _bs) ``` 接口,输入参数为```[ 111111 -1111111 false 0x692a70d2e424a56d2c6c27aa97d1a86395877b3a abcdefghiabcdefghiabcdefghiabhji 章鱼小丸子ljjkl;adjsfkljlkjl sadfljkjkljkl ]```,解析交易中的logs |
| 707 | +调用``` function do_event(uint256 _u,int256 _i,bool _b,address _addr,bytes32 _bs32, string _s,bytes _bs) ``` 接口,输入参数为```[ 111111 -1111111 false 0x692a70d2e424a56d2c6c27aa97d1a86395877b3a abcdefghiabcdefghiabcdefghiabhji FISCO-BCOS nice ]```,解析交易中的logs |
704 | 708 |
|
705 | 709 | ```java
|
706 | 710 | // transactionReceipt为调用do_event接口的交易回执
|
@@ -750,7 +754,7 @@ json =>
|
750 | 754 | {
|
751 | 755 | "name": "_s",
|
752 | 756 | "type": "string",
|
753 |
| - "data": "章鱼小丸子ljjkl;adjsfkljlkjl", |
| 757 | + "data": "Fisco Bcos", |
754 | 758 | "indexed": false
|
755 | 759 | },
|
756 | 760 | {
|
@@ -796,13 +800,13 @@ json =>
|
796 | 800 | {
|
797 | 801 | "name": "_s",
|
798 | 802 | "type": "string",
|
799 |
| - "data": "章鱼小丸子ljjkl;adjsfkljlkjl", |
| 803 | + "data": "FISCO-BCOS", |
800 | 804 | "indexed": false
|
801 | 805 | },
|
802 | 806 | {
|
803 | 807 | "name": "_bs",
|
804 | 808 | "type": "bytes",
|
805 |
| - "data": "sadfljkjkljkl", |
| 809 | + "data": "nice", |
806 | 810 | "indexed": false
|
807 | 811 | }
|
808 | 812 | ]
|
@@ -847,12 +851,12 @@ map =>
|
847 | 851 | ResultEntity[
|
848 | 852 | name=_s,
|
849 | 853 | type=string,
|
850 |
| - data=章鱼小丸子ljjkl;adjsfkljlkjl |
| 854 | + data=FISCO-BCOS |
851 | 855 | ],
|
852 | 856 | ResultEntity[
|
853 | 857 | name=_bs,
|
854 | 858 | type=bytes,
|
855 |
| - data=sadfljkjkljkl |
| 859 | + data=nice |
856 | 860 | ]
|
857 | 861 | ]
|
858 | 862 | ],
|
@@ -892,12 +896,12 @@ map =>
|
892 | 896 | ResultEntity[
|
893 | 897 | name=_s,
|
894 | 898 | type=string,
|
895 |
| - data=章鱼小丸子ljjkl;adjsfkljlkjl |
| 899 | + data=FISCO-BCOS |
896 | 900 | ],
|
897 | 901 | ResultEntity[
|
898 | 902 | name=_bs,
|
899 | 903 | type=bytes,
|
900 |
| - data=sadfljkjkljkl |
| 904 | + data=nices |
901 | 905 | ]
|
902 | 906 | ]
|
903 | 907 | ]
|
@@ -1338,3 +1342,33 @@ class Asset {
|
1338 | 1342 |
|
1339 | 1343 | asset.registerRegisterEventEventLogFilter(fromBlock,toBlock,otherTopics,callback);
|
1340 | 1344 | ```
|
| 1345 | +
|
| 1346 | +## 附录:JavaSDK启动异常场景 |
| 1347 | +
|
| 1348 | +- Failed to connect to the node. Please check the node status and the console configuration.<br> |
| 1349 | + 比较旧的SDK版本的提示,建议将JavaSDK版本升级至**2.2.2**或者以上(修改gradle.build或者maven配置文件中web3sdk的版本号),可以获取更准确友好的提示,然后参考下面的错误提示解决问题。<br> <br> |
| 1350 | +
|
| 1351 | +- Failed to initialize the SSLContext: class path resource [ca.crt] cannot be opened because it does not exist. <br> |
| 1352 | + 无法加载到证书文件,证书文件没有正确拷贝至conf目录,可以参考控制台安装流程,拷贝证书文件至conf目录下。<br><br> |
| 1353 | +
|
| 1354 | +- Failed to initialize the SSLContext: Input stream not contain valid certificates. <br> |
| 1355 | + 加载证书文件失败,CentOS系统使用OpenJDK的错误,参考[CentOS环境安装JDK](../manual/console.html#java)章节重新安装OracleJDK。<br><br> |
| 1356 | +
|
| 1357 | +- Failed to connect to nodes: [connection timed out: /192.0.0.1:20200]<br> |
| 1358 | + 连接超时,节点的网络不可达,请检查提示的IP是否配置错误,或者,当前JavaSDK运行环境与节点的环境网络确实不通,可以咨询运维人员解决网络不通的问题。<br><br> |
| 1359 | +
|
| 1360 | +- Failed to connect to nodes: [拒绝连接: /127.0.0.1:20200]<br> |
| 1361 | + 拒绝连接,无法连接对端的端口,可以使用telnet命令检查端口是否连通,可能原因: |
| 1362 | + 1. 节点未启动,端口处于未监听状态,启动节点即可。 |
| 1363 | + 2. 节点监听`127.0.0.1`的网段,监听`127.0.0.1`网络只能本机的客户端才可以连接,控制台位于不同服务器时无法连接节点,将节点配置文件`config.ini`中的`channel_listen_ip`修改为控制台连接节点使用的网段IP,或者将其修改为`0.0.0.0`。 |
| 1364 | + 3. 错误的端口配置,配置的端口并不是节点监听的channel端口,修改连接端口为节点`config.ini`配置的`channel_listen_port`的值。<br> |
| 1365 | + **注意:控制台(或者JavaSDK)连接节点时使用Channel端口,并不是RPC端口,Channel端口在节点配置文件中通过channel_listen_ip字段配置,RPC端口通过jsonrpc_listen_port字段配置,注意区分,RPC默认从8545开始分配, Channel端口默认从20200开始分配。** |
| 1366 | +
|
| 1367 | +- Failed to connect to nodes: [ ssl handshake failed:/127.0.0.1:20233] |
| 1368 | + 与节点ssl握手失败,可能原因:<br> |
| 1369 | + 1. 拷贝了错误的证书,检查拷贝的证书是否正确。 |
| 1370 | + 2. 端口配置错误,连接其他服务正在监听的端口,检查连接端口是否为节点`channel_listen_port`端口。 |
| 1371 | + 3. JDK版本问题,推荐使用1.8以及以上的OracleJDK,参考[CentOS环境安装JDK](../manual/console.html#java)章节安装OracleJDK。<br><br> |
| 1372 | + |
| 1373 | +- Failed to connect to [127.0.0.1:20233, 127.0.0.1:20234, 127.0.0.1:20235] ,groupId: 1 ,caCert: classpath:ca.crt ,sslKey: classpath:sdk.key ,sslCrt: classpath:sdk.crt ,java version: 1.8.0_231.<br> |
| 1374 | + 其他未知的错误,需要查看日志文件分析具体错误。 |
0 commit comments