JetLinks物联网平台在windows 7搭建(前后端)部署教程

近期对接TCP、modbusTCP等自定义解析,做了很多万能解析的方法,却都不遂人意,而一直在用的ThingsBoard不能直接对接TCP透传(企业版除外),需要在外围做一些自定义解析,然后转json再mqtt上传,感觉来说比较麻烦。

所以就发现了jetLinks,可以满足上述我所说的要求,故此就在本电脑开始了搭建部署,借此记录下整个过程,到时候再在服务端部署的时候避免踩坑。

废话不多说,开始整起!

由于这个jetlinks前后端分离,所以要分前后端的部署。

目录

一、后端篇

1、预备条件

2、代码下载

3、代码调整

4、代码运行

二、前端篇

1、预备条件

2、下载打包

 3、nginx运行

4、前端开启


一、后端篇

1、预备条件

硬件:本人电脑win7系统,内存够用就行

软件配置:

①JDK 1.8.0_2xx (需要版本号大于200) 下载jdk;

②Redis 5.x;

③PostgreSQL 11 或者 mysql 5.7 +;

④ElasticSearch 6.8-7.17.5 下载(也可以不配置,我用了内嵌的,只需配置下即可,下文会讲到)

上面的配置我都收集在一起了,下载地址:JetLinks配件

2、代码下载

访问项目的github地址(踩坑:最新的会出错,我是下了这个版本的):GitHub - jetlinks/jetlinks-community: JetLinks 基于Java8,Spring Boot 2.x ,WebFlux,Netty,Vert.x,Reactor等开发, 是一个全响应式的企业级物联网平台。支持统一物模型管理,多种设备,多种厂家,统一管理。统一设备连接管理,多协议适配(TCP,MQTT,UDP,CoAP,HTTP等),屏蔽网络编程复杂性,灵活接入不同厂家不同协议等设备。实时数据处理,设备告警,消息通知,数据转发。地理位置,数据可视化等。能帮助你快速建立物联网相关业务系统。

对于最新版本的有这个问题,向大佬请教了,说拉取没有完全拉完,我想说的是,我整个都扒下来了,还是有问题。

题外话扯多了,下载上述说的那个版本,直接下载代码到本地,或者直接git拉取。

3、代码调整

待项目初始化完毕后,修改配置文件,配置下redis数据库(timeout我设置了200s),然后用的是postgres(数据库名:jetlinks)

使用内嵌的ElasticSearch,不用单独安装:

4、代码运行

运行前,先maven下

然后运行JetLinksApplication.java

然而不是一下就完成运行的,其中也遇到了2个问题:

①java: 程序包jdk.nashorn.internal.runtime不存在,解决之法:点击idea的“File--Project Structure”把java版本改为1.8(必须是1.8.0_200以上版本)

②遇到问题:Error running 'JetLinksApplication': Command line is too long. Shorten command line for JetLinksApplication or also for Spring Boot default configuration?

解决之法:点击上图中JAR manifest,将命令行中的参数配置到 JAR 文件的 Manifest 文件中,而不是直接在命令行中指定。这样可以通过减少命令行长度来避免问题。

有遇到其他问题的童鞋,可以去这里找到答案:常见问题 · JetLinks企业级物联网基础平台

最后不负众望,运行成功了。

同时,我的postgres数据库也生成表结构并插入数据,到这里后端搭建就完成了,但不要关闭,让代码一直运行,因为还有前端没部署好呢!

二、前端篇

jetlinks前端有2个代码库,ant版本(旧) 和 vue版本(新),我尝试两个都测试下,走了不少弯路,最终发现vue版本行不通,所以就选择了ant版本(旧)。

1、预备条件

官网下载Nginx,这里是使用windows的稳定版本进行测试。

下载地址:nginx: download

进入到Nginx文件根目录下,执行如下命令启动Nginx服务

start nginx

命令执行完成后,浏览器打开:127.0.0.1:80,若出现如下页面则Nginx安装并运行成功。

2、下载打包
前端代码下载:https://github.com/jetlinks/jetlinks-ui-antd.git

或者直接git拉取到本地:

$ git clone https://github.com/jetlinks/jetlinks-ui-antd.git

安装npm(若已安装请忽略):

使用npm打包(命令在 jetlinks-ui-antd 根目录下执行)

  yarn install yarn run build 

如果遇到报错如下:

 应该是JavaScirpt内存不够,打包的时候内存溢出了

解决方法:

在后面加上最大内存限制

$ npm run-script build --max_old_space_size=4096

打包成功!

在jetlinks-ui-antd文件下自动生成了dist 文件。

 3、nginx运行

将生产的dist文件复制到nginx/html文件中

修改Nginx文件目录下的/conf/nginx.conf中的内容,只需要调整server段的代码块即可:

server {listen 9000; #访问的端口(默认9000,根据需求自定义)listen [::]:9000;# gzip configgzip on;gzip_min_length 1k;gzip_comp_level 9;gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;gzip_vary on;gzip_disable "MSIE [1-6]\.";location / {root   html/dist; #项目资源文件加载目录index  index.html; #项目首页文件}# nginx反向代理,自动匹配路径中带有"/api/"部分并转发至proxy_pass代理的后端地址location ^~/api/ {proxy_pass http://127.0.0.1:8848/; #代理地址,修改为后端地址proxy_set_header X-Forwarded-Proto $scheme;proxy_set_header Host $host;proxy_set_header X-Real-IP  $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_connect_timeout   1;proxy_buffering off;chunked_transfer_encoding off;proxy_cache off;proxy_send_timeout      30m;proxy_read_timeout      30m;client_max_body_size    500m;}
}

保存好配置文件,重新启动Nginx,执行如下命令重启:

nginx -s reload

4、前端开启

打开浏览器,访问http://localhost:9000,账号/密码:admin/admin。若能正常访问服务则打包部署成功。
前提:成功启动了后端服务或者后端服务一直没关闭。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/844570.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android笔记--应用安装

这一节了解一下普通应用安装app的方式&#xff0c;主要是唤起系统来安装&#xff0c;直接上代码: 申请权限 <uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE"/><uses-permission android:name"android.permission.WRITE_EXT…

【包装类简单认识泛型】

目录 1&#xff0c;包装类 1.1 基本数据类型和对应的包装类 1.2 装箱和拆箱 2&#xff0c;什么是泛型 3&#xff0c;引出泛型 3.1 语法 4&#xff0c;泛型如何编译的 4.1 擦除机制 4.2 为什么不能实例化泛型类型数组 5&#xff0c;泛型的上界 5.1 语法 5.2 复杂示例…

Windows内核函数 - 添加、修改注册表键值

打开注册表的句柄后&#xff0c;就可以对该项进行设置和修改了。注册表是以二元形式存储的&#xff0c;即“键名”和“键值”。通过键名设置键值&#xff0c;而键值可以划分几个类&#xff0c;如下表所示。 表1 键值的分类 在添加和修改注册表键值的时候&#xff0c;要分类进行…

dp秒杀优惠券

1、全局id生成器 当用户抢购时&#xff0c;就会生成订单并保存到tb_voucher_order这张表中&#xff0c;而订单表如果使用数据库自增ID就存在一些问题&#xff1a; id的规律性太明显受单表数据量的限制 场景分析&#xff1a;如果我们的id具有太明显的规则&#xff0c;用户或者…

企业网站有必要进行软件测试吗?网站测试有哪些测试流程?

企业网站在现代商业中扮演着重要的角色&#xff0c;它不仅是企业形象的重要体现&#xff0c;也是与客户、合作伙伴进行沟通与交流的重要渠道。然而&#xff0c;由于企业网站的复杂性和关键性&#xff0c;其中可能存在各种潜在的问题和隐患。因此&#xff0c;对企业网站进行软件…

el-upload上传文件使用http-request方法,formdata传集合List到后台

el-upload上传文件 前言1、使用el-upload上传文件1.1代码演示1.2回显列表2、formdata传集合List到Springboot后台前言 在使用el-upload上传文件,会遇到必须使用:action="upload_url"远端链接的问题,本章我们讲解怎样不适用远端链接,通过上传获取到本地的file文件…

海尔智家牵手罗兰-加洛斯,看全球创牌再升级

晚春的巴黎西郊&#xff0c;古典建筑群与七叶树林荫交相掩映&#xff0c;坐落于此的罗兰加洛斯球场内座无虚席。 来自全球各地的数万观众&#xff0c;正与场外街道上的驻足者们一起&#xff0c;等待着全世界最美好的网球声响起…… 当地时间5月26日&#xff0c;全球四大职业网…

RFM模型-分析母婴类产品

1&#xff0c;场景描述 假设我们是某电商平台的数据分析师&#xff0c;负责分析母婴产品线的用户数据。母婴产品的购买行为具有一定的周期性和生命周期特征&#xff0c;如用户在不同怀孕阶段的需求不同&#xff0c;以及宝宝出生后的不同成长阶段需要不同的产品。 2&#xff0…

XV7011BB可为智能割草机的导航系统提供新的解决方案

智能割草机作为现代家庭和商业草坪维护保养的重要工具&#xff0c;其精确的定位和导航系统对于提高机器工作效率和确保安全运行至关重要。在智能割草机的发展历程中&#xff0c;定位和导航技术一直是关键的创新点。 传统的基于RTK(实时动态差分定位技术)技术的割草机虽然在…

景源畅信电商:抖音开店步骤是什么?

随着社交媒体的兴起&#xff0c;抖音已经成为一个不可忽视的电商平台。许多人都希望通过抖音开店来实现自己的创业梦想。那么&#xff0c;抖音开店的具体步骤是什么呢?接下来&#xff0c;我们将详细阐述这一问题。 一、明确回答问题抖音开店的步骤主要包括&#xff1a;注册账号…

Vue 3 教程:核心知识

Vue 3 教程&#xff1a;核心知识 1. Vue3简介1.1. 【性能的提升】1.2.【 源码的升级】1.3. 【拥抱TypeScript】1.4. 【新的特性】 2. 创建Vue3工程2.1. 【基于 vue-cli 创建】2.2. 【基于 vite 创建】(推荐)2.3. 【一个简单的效果】 3. Vue3核心语法3.1. 【OptionsAPI 与 Compo…

【C++】---二叉搜索树

【C】---二叉搜索树 一、二叉搜索树概念二、二叉搜索树操作&#xff08;非递归&#xff09;1.二叉搜索树的查找 &#xff08;非递归&#xff09;&#xff08;1&#xff09;查找&#xff08;2&#xff09;中序遍历 2.二叉搜索树的插入&#xff08;非递归&#xff09;3.二叉搜索树…

Java 实现二叉搜索树 代码

新建文件 创建TreeNode类&#xff0c;实例化 直接在BinarySearchTree类里面写就可以 static class TreeNode {public int key;public TreeNode left;public TreeNode right;TreeNode(int key) {this.key key;}}public TreeNode root; 插入节点 insert public boolean inser…

Spring创建对象的多种方式

一、对象分类 简单对象&#xff1a;使用new Obj()方式创建的对象 复杂对象&#xff1a;无法使用new Obj()方式创建的对象。例如&#xff1a; 1. AOP创建代理对象。ProxyFactoryBean; 2. Mybatis中的SqlSessionFactoryBean; 3. Hibernate中的SessionFactoryBean。二、创建对象方…

创新案例 | 持续增长,好孩子集团的全球化品牌矩阵战略与客户中心设计哲学

探索好孩子集团如何通过创新设计的全球化品牌矩阵和以客户为中心的产品策略&#xff0c;在竞争激烈的母婴市场中实现持续增长。深入了解其品牌价值观、市场定位策略以及如何满足新一代父母的需求。本文旨在为中高级职场人士、创业家及创新精英提供深度见解&#xff0c;帮助他们…

最新上市公司控制变量大全(1413+指标)1990-2023年

数据介绍&#xff1a;根据2023年上市公司年报数据进行更新&#xff0c;包括基本信息、财务指标、环境、社会与治理、数字化转型、企业发展、全要素生产率等1413指标。数据范围&#xff1a;A股上市公司数据年份&#xff1a;1990-2023年指标数目&#xff1a;1413个指标&#xff0…

在云中确保安全的五个技巧

随着采用云计算战略并开始充分意识到云计算技术可以提供的回报&#xff0c;企业可以做些什么来改善他们的风险状况?以下是德迅云安全在云中确保安全的五个技巧。 德迅云安全对如何在云计算基础设施中确保安全的五个技巧进行了阐述和分析。 在当今的混合工作环境中&#xff0c…

UG NX二次开发(C#)-UFun函数-利用UFPart.Export导出模型中的对象并创建一个新的part

文章目录 1、前言2、UF_PART_export函数定义3、UF_PART_export_with_options函数定义4、代码1、前言 在UG NX 10.0二次开发中,需要用到将装配体中通过几何建模创建的对象独立创建一个part文件,所以查找了下UFun函数,即是UF_PART_export 和UF_PART_export_with_options两个函…

在Windows 10中,如何利用命令提示符删除应用程序

如果你使用的是Windows 10&#xff0c;并且需要释放一些磁盘空间&#xff0c;你可以直接从命令提示符卸载不再使用的应用程序。以下是操作方法。 首先&#xff0c;你必须以管理员身份运行命令提示符才能卸载程序。在“Windows搜索”框中&#xff0c;键入“cmd”或“命令提示符…

NVR对接三方相机预览黑屏问题案例

一、 问题现象 【问题现象】NVR接入三方相机,通道状态显示在线,但本地、web预览显示黑屏。更换H.264&#xff0c;H.265均预览黑屏&#xff0c;且NVR侧的萤石云手机APP预览报错260025。 【现场拓扑】现场拓扑如下 &#xff08;1&#xff09; IPC使用onvif协议添加至NVR&#xff…