thingsboard源码启动踩过的坑

文章类型:只记坑,不分析、不学习。

此文主要针对想用源码启动thingsboard的人们。
注意:只是辅助能将项目正常运行起来,以后的坑以后再去研究。
配置:
thingsboard 3.0.1
postgre 12
提醒:改完下面第一个问题后,记得compile,时间会非常长,前端模块可能会报错,然而可以暂时不用管。最好不要直接install。

1、gradle下不了的问题。

原因:连不上外网,需换成国内镜像。

解决方法:

找到build.gradle,注意前后端都有。将buildscript.repositories的jcenter注释,修改成阿里云镜像:maven{url 'http://maven.aliyun.com/nexus/content/groups/public/'}

图例:

gradle_wenti.png

2、gen包找不到的问题。

原因:系编译版本问题。

解决方法:

在common工程的pom.xml文件中加入

<build>

<plugins>

    <plugin>

        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-compiler-plugin</artifactId>

        <configuration>

            <source>8</source>

            <target>8</target>

        </configuration>

    </plugin>

</plugins>

</build>

图例:

compile_wenti.png

3、application的config中的ThingsboardSecurityConfiguration报错问题。

原因:系@Configuration注解的类中,不能使用自动或手动注入的注解!因为在springboot项目的启动的最初阶段,IDE加载注入配置器bean,还没有扫描到工程的bean,无法发现对应的 bean ,于是就需要我们手动的给其指定需要扫描的包

解决方法:指定扫描路径,去扫描一次包!使用@ComponentScan({"org.thingsboard.server"})

图例:

annotation_wenti.png

4、运行时有bean找不到

原因:系统里面初始化的时候回去查数据库用户,如果数据库一个用户都没有,部分bean就会找不到!

解决办法:初始化数据库,也就是去找系统里面dao项目下找system-data.sql(记不太清楚了,貌似是这货,如果不是就继续根据英文名找),在数据库中执行一下,把超级管理员用户加载出来。

5、运行时还有bean依旧找不到(慎重)。

原因:同样是ThingsboardSecurityConfiguration类中,部分注入方式可能存在问题!(注意是可能,因为鄙人改了太多给忘了),注意当多个实现类的bean注入时,不能单纯的使用@Autowired

,这玩意儿是根据类型去找到实例,如果多个实现类IOC容器会直接懵逼。所以你需要指定人bean名字,

解决办法:可以通过@Autowired+@Qualifier("beanName")的方式,也可以@Resource(name = "beanName")直接搞定。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容