IOTXING

记录技术学习之路

0%

  1. 编译时出现ls_hal_rsa.h: No such file or directory 解决方法:将代码换成2.1版本的,或者将当前项目中的.config里面的alicrypto开关后门的y改成n,3.0和lastest的代码在编译alicrypto的时候会出现这个问题,不让他们进行编译就行了

  2. 配网时候出现IOTX_AWSS_PASSWD_ERR 解决方法:这是因为解密失败,先检查下四元组是不是都填写正确了!!!

mvn 出现Unable to find main class

因为我的项目采用的是多模块,子模块都是继承的parent的pom属性,而我其中的几个子模块作为公共类,是没有入口函数的,所以在没有入口函数的pom文件里面,不要放build的相关配置。

Read more »

  1. 在注入属性的时候,注入属性为undefined 背景:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @connect(
    ({
    domainList
    }: {
    domainList: DomainType
    }) =\> ({
    domainList
    }),
    )
    这里是antd在在注入属性时候的语法糖, 这里的domainList需要跟model里面的namespace写的是一样,这样才能注入到,不然就会找不到

在后台运行npm start

背景

为了避免在不同设备上面开发的时候,因为环境依赖的问题导致项目起不来,我选择了在一台服务器上面进行开发,然后不同的设备通过修改服务器上面的文件夹,来进行开发。这进而导致了一个问题,我需要在后台一直运行npm start,不会因为终端的问题而导致服务挂掉。

一般来说使用

nohup npm start &
Read more »

spring boot 全局错误异常处理

1. 背景

在开发一个前后端分离的项目时,难免会遇到各种各样的业务逻辑错误,例如某个接口,其中可能有十种情况会影响业务的清空,如果是一个对用户比较友好的项目的话,对于这10种情况都会做对应的错误处理,能够让用户清楚业务不成功的具体原因。向阿里云,腾讯云等提供的sdk,都会定义自己的错误异常文件,进而将异常信息抛出来,让用户清楚自己错误的原因。

一般我们使用抛出异常或者通过修改自定义的返回体,来将错误信息给前端进行返回。在抛出异常的时候,我们会希望能够根据该异常,返回一个统一数据结构,这样能够方便前端进行处理。所以我们需要想办法通过controller层对异常进行处理,然后按照预定的格式内容返回给前端json字符串。

Read more »

背景:

在apple store,macbook pro被清空,然后重装系统。拿回家之后,自己在家进行新电脑设置,然后选择timemachine同步,在同步途中因为路由器重启,导致无法连接到timemachine,后来就出现了恢复备份出错,只恢复了一小部分备份文件

Read more »

Jenkins node自动切换

之前在使用pipeline的时候,写法都是下面这种写法

stage("第一个阶段"){
    node{
        xxx
    }
}
stage("第二个阶段"){
    node{
        xxx
    }
}
Read more »

Jenkins添加node节点

添加凭据

我们需要先将master的私钥添加到jenkins中,后续jenkins访问node的时候需要用该私钥去进行ssh访问

私钥的内容我们可以在master的机器上面,cat ~/.ssh/id_rsa查看到,如果没有秘钥的话,需要执行

ssh-keygen
Read more »

在使用jenkins的pipeline时,中间需要进行sonar扫描,然后获取扫描结果。根据官方文件推荐的用法是

pipeline {
        agent none
        stages {
          stage("build & SonarQube analysis") {
            agent any
            steps {
              withSonarQubeEnv('My SonarQube Server') {
                sh 'mvn clean package sonar:sonar'
              }
            }
          }
          stage("Quality Gate") {
            steps {
              timeout(time: 1, unit: 'HOURS') {
                waitForQualityGate abortPipeline: true
              }
            }
          }
        }
      }
Read more »