附录

1. 安装问题

1.1 Java部署

此处给出Oracle JDK安装简单步骤,供快速查阅。更详细的步骤,请参考官网

(1)从官网下载对应版本的java安装包,并解压到相应目录

mkdir /software
tar -zxvf jdkXXX.tar.gz /software/

(2)配置环境变量

export JAVA_HOME=/software/jdk1.8.0_121
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

1.2 Gradle部署

此处给出简单步骤,供快速查阅。更详细的步骤,请参考官网

(1)从官网下载对应版本的Gradle安装包,并解压到相应目录

mkdir /software/
unzip -d /software/ gradleXXX.zip

(2)配置环境变量

export GRADLE_HOME=/software/gradle-4.9
export PATH=$GRADLE_HOME/bin:$PATH

2. 常见问题

答:chmod +x filename 给文件增加权限

...
/data/temp/WeBASE-Front/src/main/java/com/webank/webase/front/performance/PerformanceService.java:167: error: cannot find symbol
        log.info("begin sync performance");
        ^
  symbol:   variable log
  location: class PerformanceService
Note: /data/temp/WeBASE-Front/src/main/java/com/webank/webase/front/contract/CommonContract.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
100 errors

> Task :compileJava FAILED

FAILURE: Build failed with an exception.
...

答:问题是不能编译Lombok注解 ,修改build.gradle文件,将以下代码的注释加上

 //annotationProcessor 'org.projectlombok:lombok:1.18.6'

答:调用 http://{ip}:{port}/WeBASE-Front/1/web3/refresh 方法,即可手动更新。

Caused by: org.h2.jdbc.JdbcSQLException: NULL not allowed for column "TYPE"; SQL statement: alter table key_store_info add column type integer not null [23502-197] at org.h2.message.DbException.getJdbcSQLException(DbException.java:357) ~[h2-1.4.197.jar:1.4.197] at org.h2.message.DbException.get(DbException.java:179) ~[h2-1.4.197.jar:1.4.197] at org.h2.message.DbException.get(DbException.java:155) ~[h2-1.4.197.jar:1.4.197]

答:将H2数据库删除(在h2目录下),或者配置新数据库名,在 application.yml 文件中的配置如下:

spring: datasource: url: jdbc:h2:file:./h2/webasefront;DB_CLOSE_ON_EXIT=FALSE // 默认H2库为webasefront ...

2019-08-08 17:29:05.505 [pool-11-thread-1] ERROR TaskUtils$LoggingErrorHandler() - Unexpected error occurred in scheduled task. org.hyperic.sigar.SigarFileNotFoundException: 没有那个文件或目录 at org.hyperic.sigar.FileSystemUsage.gather(Native Method) ~[sigar-1.6.4.jar:?] at org.hyperic.sigar.FileSystemUsage.fetch(FileSystemUsage.java:30) ~[sigar-1.6.4.jar:?] at org.hyperic.sigar.Sigar.getFileSystemUsage(Sigar.java:667) ~[sigar-1.6.4.jar:?]

答:监控目录不存在,需配置节点所在磁盘目录,在 application.yml 文件中的配置如下:

... constant: monitorDisk: / // 要监控的磁盘目录,配置节点所在目录(如:/home) ...

...
nested exception is javax.net.ssl.SSLException: Failed to initialize the client-side SSLContext: Input stream not contain valid certificates.

答:CentOS的yum仓库的OpenJDK缺少JCE(Java Cryptography Extension),导致Web3SDK无法正常连接区块链节点,因此在使用CentOS操作系统时,推荐从OpenJDK网站自行下载。