ThingsBoard本地环境搭建及相关异常处理

前言

本文以release-3.6为基础,源码编译后启动jar包工程。


1.前置条件

1. java,ThingsBoard从3.2.2之后将JDK更新到11版本

2. Maven镜像配置
<mirror>  
    <id>nexus-aliyun</id>  
    <mirrorOf>central</mirrorOf>    
    <name>Nexus aliyun</name>  
    <url>https://maven.aliyun.com/repository/public</url>  
</mirror>

3. git安装,安装历史悠久,不再叙述

4. 安装node.js,安装node会自动安装npm,
参考地址:https://blog.csdn.net/m0_61961937/article/details/127322347
#使用淘宝镜像
npm install -g mirror-config-china --registry=http://registry.npm.taobao.org
#查询当前镜像
npm config get registry

5. 安装yarn
npm安装yarn:npm install -g yarn
#设置淘宝镜像:
yarn config set registry https://registry.npm.taobao.org -g 
yarn config set sass_binary_site http://cdn.npm.taobao.org/dist/node-sass -g
#使用yarn config list查看,发现的新版的yarn是严格检查ssl的,关闭严格检查SSL设置
yarn config set strict-ssl false

6. 安装PostgreSQL,使用PostgreSQL 12.X及以上版本
#参考地址:https://www.cnblogs.com/wenhuang/p/10706931.html

2.获取源码,修改配置、代码

1. 拉取源码:git clone https://gitee.com/mirrors/ThingsBoard.git

2. 切换分支:git checkout release-3.6

3. 注释、修改配置文件
3.1 根目录pom.xml文件找到license-maven-plugin,并将整个plugin注释掉
3.2 application模块中的thingsboard.yml文件修改数据库相关信息
3.3 ui-ngx模块中的pom.xml文件修改node/yarn版本号
3.4 msa/js-executor模块中的pom.xml文件修改node/yarn版本号

4. 启动时异常处理:Error creating bean with name 'defaultTbMailConfigTemplateService': Invocation of init method failed; nested exception is java.io.FileNotFoundException: class path resource [templates/mail_config_templates.json] cannot be resolved to absolute file path because it does not reside in the file system:
        解决方式:
        1. 修改类org.thingsboard.server.service.mail.DefaultTbMailConfigTemplateService.java文件获取模板文件方法
        原方法:mailConfigTemplates = JacksonUtil.toJsonNode(new ClassPathResource("/templates/mail_config_templates.json").getFile());
        调整为:
            ApplicationHome applicationHome = new ApplicationHome(DefaultTbMailConfigTemplateService.class);
            //项目打包成jar包所在的根路径
            String rootPath = applicationHome.getSource().getParentFile().toString();
            String configFilePath = rootPath + "/templates/mail_config_templates.json";
            File configFile = new File(configFilePath);
            mailConfigTemplates = JacksonUtil.toJsonNode(configFile);
        2. 复制ThingsBoard\application\src\main\resources下的templates目录至项目运行jar包所在的根路径

5. 新增租户时异常处理Please use either root project directory, application module directory or specify valid "install.data_dir" ENV variable to avoid automatic data directory lookup!
        解决方式:在项目运行jar包所在的根路径,新建文件夹目录:application\src\main,将ThingsBoard\application\target或者ThingsBoard\application\src\main下的data目录复制至该目录中

3.mvn命令编译

# -DskipTests 不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下,-X 显示maven允许的debug信息
mvn clean install -DskipTests -X 
或
# -Dmaven.test.skip=true不执行测试用例,也不编译测试用例类
mvn clean install -Dmaven.test.skip=true 

4.项目启动,登录

导入数据:PostgreSQL中新建数据库(对应application模块中的thingsboard.yml文件中的数据库相关信息),cmd进入目录\ThingsBoard\application\target\windows,执行install_dev_db.bat初始化数据

启动: cmd命令行jar包启动:java -jar *****.jar
        注:nohup java -jar *****.jar & 表示不挂断运行命令,当账户退出或终端关闭时,程序仍然运行。注意,该作业的所有输出被重定向到nohup.out的文件中
        或者eclipse中run application模块下的ThingsboardServerApplication.java(eclipse暂未调试成功)

登录:访问本机localhost:8080登录
        默认系统账户:sysadmin@thingsboard.org,密码:sysadmin
        租户管理员:tenant@thingsboard.org,密码:tenant
        客户:customer@thingsboard.org,密码:customer

5.异常处理

1. 启动时异常处理:Error creating bean with name 'defaultTbMailConfigTemplateService': Invocation of init method failed; nested exception is java.io.FileNotFoundException: class path resource [templates/mail_config_templates.json] cannot be resolved to absolute file path because it does not reside in the file system:
        解决方式:
        1. 修改类org.thingsboard.server.service.mail.DefaultTbMailConfigTemplateService.java文件获取模板文件方法
        原方法:mailConfigTemplates = JacksonUtil.toJsonNode(new ClassPathResource("/templates/mail_config_templates.json").getFile());
        调整为:
            ApplicationHome applicationHome = new ApplicationHome(DefaultTbMailConfigTemplateService.class);
            //项目打包成jar包所在的根路径
            String rootPath = applicationHome.getSource().getParentFile().toString();
            String configFilePath = rootPath + "/templates/mail_config_templates.json";
            File configFile = new File(configFilePath);
            mailConfigTemplates = JacksonUtil.toJsonNode(configFile);
        2. 复制ThingsBoard\application\src\main\resources下的templates目录至项目运行jar包所在的根路径

2. 新增租户时异常处理Please use either root project directory, application module directory or specify valid "install.data_dir" ENV variable to avoid automatic data directory lookup!
        解决方式:在项目运行jar包所在的根路径,新建文件夹目录:application\src\main,将ThingsBoard\application\target或者ThingsBoard\application\src\main下的data目录复制至该目录中
        
3. 其他各类错误检查项
3.1 ThingsBoard从3.2.2之后将JDK更新到11版本
3.2 application模块中的thingsboard.yml文件数据库相关信息是否正确
3.3 ui-ngx、msa/js-executor模块中的pom.xml文件配置的node/yarn版本号是否与本机一致
3.4 maven、node、yarn镜像参考本文开头前置条件中检查

6.参考地址

ThingsBoard官方介绍文档:http://www.ithingsboard.com/docs/user-guide/contribution/yuanmayunxing3.3.0/
ThingsBoard开发环境搭建技巧:https://www.bilibili.com/video/BV1RQ4y167nA?p=2&vd_source=99561fbd5abc1d696ca1675ccf487a39
ThingsBoard应用教程:https://www.bilibili.com/video/BV1jy4y1f7gw/?spm_id_from=333.337.search-card.all.click&vd_source=99561fbd5abc1d696ca1675ccf487a39
node.js、npm、yarn安装和基本使用:https://blog.csdn.net/m0_61961937/article/details/127322347
windows下postgreSQL安装与启动:https://www.cnblogs.com/wenhuang/p/10706931.html
Thingsboard 实体及数据存储研究:https://www.cnblogs.com/haiiiiiyun/p/12786999.html
  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
接触Thingsboard用得到!!! 目录 1  参考资料 5  文档目的 6 第一章 项目框架整理说明 7 1.1 项目框架说明 7 1.1.1 package包功能描述 8 1.1.2 thingsboard开发主要涉及到的包 10 1.1.3 thingsboard代码类及接口说明 10 第二章 thingsboard涉及到的流程图 12 2.1 物联网网关架构 12 2.2 ThingsBoard微服务架构 13 2.3 Thingsboard产品架构 13 2.4 Thingsboard规则引擎 14 2.5 ThingsBoard Architecture 15 第三章 项目框架涉及到的第三方包或插件 17 3.1 Thingsboard 包 17 第四章 ThingsBoard设备连接协议 23 4.1 订阅消息传递协议(MQTT) 23 4.2 请求响应模式(CoAP) 23 4.3 请求响应模式(HTTP ) 24 第五章 ThingsBoard打包 25 5.1 后端打包 25 5.2 前端打包方UI 25 第六章 ThingsBoard框架日志 26 第七章 ThingsBoard数据库 目录 目录 1  参考资料 5  文档目的 6 第一章 项目框架整理说明 7 第二章 thingsboard涉及到的流程图 12 第三章 项目框架涉及到的第三方包或插件 17 第四章 ThingsBoard设备连接协议 23 第五章 ThingsBoard打包 25 第六章 ThingsBoard框架日志 26 第七章 ThingsBoard数据库 27 第八章 官网主要文档目录 28 第九章 前端技术概述 29 第十章 关于Thingsboard开发环境部署 30 第十一章 数据库表结构 32 错误!未定义书签。 7.1 关系数据库(使用了2个数据库) 27 7.2 非关系数据库(redis) 27 第八章 官网主要文档目录 28 第九章 前端技术概述 29 9.1 前端包括哪些技术点 29 9.2 前端技术描述 29 第十章 关于Thingsboard开发环境部署 30 第十一章 数据库表结构 32
1. 准备工作 - 树莓派:建议使用3B+或者4B型号; - SD卡:建议使用16GB或以上的SD卡; - 电源:建议使用5V/2.5A或以上的电源; - 网络连接:建议使用有线网络连接; - 操作系统:建议使用Raspbian。 2. 安装Java运行环境 在树莓派上安装Thingsboard需要Java运行环境,可以使用以下命令安装: ``` sudo apt-get update sudo apt-get install default-jdk ``` 安装完成后,可以使用以下命令检查Java版本: ``` java -version ``` 3. 下载Thingsboard 可以从Thingsboard官网下载最新版本的安装包,也可以使用以下命令下载: ``` wget https://github.com/thingsboard/thingsboard/releases/download/v3.3.0/thingsboard-3.3.0.deb ``` 4. 安装Thingsboard 使用以下命令安装Thingsboard: ``` sudo dpkg -i thingsboard-3.3.0.deb ``` 安装完成后,可以使用以下命令启动Thingsboard: ``` sudo service thingsboard start ``` 5. 访问Thingsboard 在浏览器中输入树莓派的IP地址,加上端口号8080,例如: ``` http://192.168.1.100:8080 ``` 即可访问Thingsboard的登录界面。初始用户名为“sysadmin”,密码为“sysadmin”。 6. 配置Thingsboard 登录后,可以根据需要配置Thingsboard,包括添加设备、创建仪表盘等等。具体操作可以参考Thingsboard官方文档。 7. 其他注意事项 - 如果要使用SSL加密连接,需要安装SSL证书; - 如果要使用MQTT连接,需要安装Mosquitto; - 如果要使用数据库存储数据,需要安装PostgreSQL或MariaDB。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值