iot-dc3 项目windows本地运行保姆喂奶级教程

一.源码拉取

        当前时间:2025年06月18日12点02分

        后台接口服务:https://gitee.com/pnoker/iot-dc3.git

        前端:https://gitee.com/pnoker/iot-dc3-web.git

        请自行拉取至本地。

二.本地环境准备

        其他基础环境先不讲了,如有需要请留言。

        idea + VS Code。

IntelliJ IDEA 2024.2.0.1 (Ultimate Edition)

JDK:java 21 的一个版本 graalvm-21 GraalVM 21.0.5 - VM 23.1.5

Maven:apache-maven-3.9.9

Visual Studio Code Version: 1.101.0 (user setup)

NodeJS:v20.16.0

        后台接口配置中默认是dev环境,安装完本地环境后请注意修改配置文件中 MySQL 端口号、账号、密码;Redis 端口号、密码;MongoDB 端口号;mqtt 端口号 等。

        嫌每次开机都要启动一遍服务麻烦的,可以看看如何将其发布到系统服务中,然后设置自启动。

1.Hosts配置

        见  环境准备 | IoT DC3

2.MySQL 5.7.44

        安装见 MySQL绿色版Windows环境安装

        各系统数据库脚本下载见 https://download.csdn.net/download/qq_35139974/91056873

        如果你没有下载的积分可以直接联系我。

3.Redis 3.0.504

        安装见 Windows安装Redis图文教程

4.MongoDB 8.0.10

        安装见 Windows安装MongoDB_mongodb

        设置用户名和密码见 mongoDB设置访问用户名密码

use dc3
db.createUser({ user: "dc3", pwd: "dc3", roles: [{ role: "dbAdmin", db: "dc3" }] })

5.RabbitMQ 4.1.1

        安装见 Windows下安装rabbitmq

        启用 MQTT 插件:

# 启用 MQTT 插件
rabbitmq-plugins enable rabbitmq_mqtt# 查看已启用插件列表
rabbitmq-plugins list

        检查并创建虚拟主机,然后赋予权限:

# 列出所有虚拟主机
rabbitmqctl list_vhosts# 如果不存在 dc3,则创建它
rabbitmqctl add_vhost dc3# 列出所有用户
rabbitmqctl list_users# 给用户分配 dc3 虚拟主机的权限
# 格式:rabbitmqctl set_permissions -p <vhost> <user> ".*" ".*" ".*"
rabbitmqctl set_permissions -p dc3 dc3 ".*" ".*" ".*"

三.后台项目启动

        依次启动 GatewayApplication、AuthApplication、ManagerApplication、DataApplication、VirtualDriverApplication。

        如果控制台报错了,请检查 二 中配置是否正确,相关环境或插件是否已安装完毕。

1.没有安装 mqtt 插件

Exception while connecting org.eclipse.paho.client.mqttv3.MqttException: 无法连接至服务器 at org.eclipse.paho.client.mqttv3.internal.TCPNetworkModule.start(TCPNetworkModule.java:80) at org.eclipse.paho.client.mqttv3.internal.ClientComms$ConnectBG.run(ClientComms.java:724) at java.base/java.lang.Thread.run(Thread.java:1583) Caused by: java.net.ConnectException: Connection refused: getsockopt at java.base/sun.nio.ch.Net.pollConnect(Native Method) at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:682) at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:542) at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:592) at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) at java.base/java.net.Socket.connect(Socket.java:751) at org.eclipse.paho.client.mqttv3.internal.TCPNetworkModule.start(TCPNetworkModule.java:74) ... 2 common frames omitted

2.虚拟主机问题

2025-06-18 11:49:45.490 ERROR 25604 --- [ntContainer#2-1] [1932] o.s.a.r.l.SimpleMessageListenerContainer : Failed to check/redeclare auto-delete queue(s). org.springframework.amqp.AmqpIOException: java.io.IOException at org.springframework.amqp.rabbit.support.RabbitExceptionTranslator.convertRabbitAccessException(RabbitExceptionTranslator.java:70) at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:622) at org.springframework.amqp.rabbit.connection.CachingConnectionFactory.createConnection(CachingConnectionFactory.java:726) at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils.createConnection(ConnectionFactoryUtils.java:257) at org.springframework.amqp.rabbit.core.RabbitTemplate.doExecute(RabbitTemplate.java:2249) at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:2222) at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:2202) at org.springframework.amqp.rabbit.core.RabbitAdmin.getQueueInfo(RabbitAdmin.java:467) at org.springframework.amqp.rabbit.core.RabbitAdmin.getQueueProperties(RabbitAdmin.java:451) at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.attemptDeclarations(AbstractMessageListenerContainer.java:1960) at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.redeclareElementsIfNecessary(AbstractMessageListenerContainer.java:1924) at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.initialize(SimpleMessageListenerContainer.java:1478) at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1320) at java.base/java.lang.Thread.run(Thread.java:1583) Caused by: java.io.IOException: null at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:140) at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:136) at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:158) at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:454) at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1251) at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1198) at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.connectAddresses(AbstractConnectionFactory.java:668) at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.connect(AbstractConnectionFactory.java:637) at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:584) ... 12 common frames omitted Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; protocol method: #method<connection.close>(reply-code=530, reply-text=NOT_ALLOWED - vhost dc3 not found, class-id=10, method-id=40) at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:66) at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:36) at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:552) at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:316) at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:152) ... 18 common frames omitted

3.redis没设置密码问题

        需要在配置文件中将密码删除

Caused by: io.lettuce.core.RedisConnectionException: Unable to connect to dc3-redis/<unresolved>:6379 at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:78) at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:56) at io.lettuce.core.AbstractRedisClient.getConnection(AbstractRedisClient.java:350) at io.lettuce.core.RedisClient.connect(RedisClient.java:215) at org.springframework.data.redis.connection.lettuce.StandaloneConnectionProvider.lambda$getConnection$1(StandaloneConnectionProvider.java:112) at java.base/java.util.Optional.orElseGet(Optional.java:364) at org.springframework.data.redis.connection.lettuce.StandaloneConnectionProvider.getConnection(StandaloneConnectionProvider.java:112) at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$ExceptionTranslatingConnectionProvider.getConnection(LettuceConnectionFactory.java:1776) ... 38 common frames omitted Caused by: io.lettuce.core.RedisCommandExecutionException: ERR Client sent AUTH, but no password is set

4.当前 MongoDB 用户没有在 dc3 数据库上执行聚合查询 (aggregate) 的权限

        异常如下:

org.springframework.data.mongodb.UncategorizedMongoDbException: Command failed with error 13 (Unauthorized): 'not authorized on dc3 to execute command { aggregate: "point_value", pipeline: [ { $match: {}

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

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

相关文章

内部网关协议配置实验

一&#xff1a;静态路由 简述&#xff1a;在华为路由器中&#xff0c;使用ip route-static命令配置静态路由。一条静态路由主要包含以下要素。 目的地址&#xff1a;数据包要到达的目标IP地址 子网掩码&#xff1a;用于指定目的地址的网络部分和主机部分 下一跳地址&#xff08…

大模型应用:如何使用Langchain+Qwen部署一套Rag检索系统

一、TL&#xff1b;DR 从0-1使用qwen chat model langchain的链式架构搭建一套rag系统详细介绍了Langchain的工具链的调用流程简单介绍了可能会出现什么问题 二、方法 参考开源链接&#xff1a;https://github.com/Aphasia0515/self_llm/ 2.1 硬件和软件依赖 类型需求备注…

决策树:化繁为简的智能决策利器

本文来自「大千AI助手」技术实战系列&#xff0c;专注用真话讲技术&#xff0c;拒绝过度包装。 想象一个相亲决策过程&#xff1a; 对方收入 > 30万&#xff1f; → 是 → 见面否 → 颜值高&#xff1f; → 是 → 先聊聊否 → 放弃 这种层层递进的判断结构&#xff0c;正是…

html中的盒子标签div标签,有序列表,无序列表

div标签 div标签对于分析数据很重要&#xff0c;因为数据在页面中展示是以区域的形式展示的&#xff0c;而查找数据需要先找到盒子名称在继续向下找。前端页面布局中有两种布局方式&#xff0c;一种是通过表格布局&#xff0c;一种是通过divcss来布局。 <!DOCTYPE html>…

【Redis】解码Redis中hash类型:理解基础命令,以及内部编码方式和使用场景

&#x1f4da;️前言 &#x1f31f;&#x1f31f;&#x1f31f;精彩读导 本次我们将全面剖析Redis的核心技术要点&#xff0c;包括其丰富的数据类型体系、高效的编码方式以及秒级响应的性能奥秘。对于渴望深入理解Redis底层机制的技术爱好者&#xff0c;这是一次难得的学习机会…

AI工具在学术写作中的伦理边界与诚信规范的平衡

AI写作助手的兴起与争议 人工智能技术的飞速发展&#xff0c;学境思源&#xff0c;ChatGPT、Grok、Claude 等AI写作工具逐渐走入高校师生的视野。一键生成论文初稿&#xff01;从课程作业到毕业论文&#xff0c;不少学生已经尝试让AI参与写作过程&#xff0c;希望借此提升效率…

课程专注度分析系统项目

前端代码: <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>课堂专注度分析系统 - 科技…

区块链是什么

区块链的本质与机制 1. 核心定义 区块链 加密的分布式记账技术&#xff0c;融合密码学、网络学、金融学三大学科。 去中心化&#xff1a;数据存储于全网节点&#xff08;如百万台计算机&#xff09;&#xff0c;而非单一数据库。不可篡改&#xff1a;修改数据需控制全网51%以…

用可观测工具高效定位和查找设计中深度隐藏的bug

软件仿真拥有最佳的信号可见性和调试灵活性,被大多数工程师熟练使用,能够高效捕获很多显而易见的常见错误。 然而,由软件实现的数字仿真过程运行速度有限,很难做到100%代码覆盖。导致那些深度隐藏的设计问题,将不可避免的逃逸,只能以FPGA在线调试方式解决。 01 为什么全…

华为OD-2024年E卷-字符串化繁为简[200分] -- python

问题描述&#xff1a; 给定一个输入字符串&#xff0c;字符串只可能由英文字母(a~z、A~Z) 和左右小括号((、))组成。当字符串里存在小括号时&#xff0c;小括号是成对的&#xff0c;可以有一个或多个小括号对&#xff0c;小括号对不会嵌套&#xff0c;小括号对内可以包含1个或…

使用sealos安装k8s

一、准备工作&#xff08;所有节点需执行&#xff09;​ 1、系统要求 操作系统&#xff1a;本文为Ubuntu 20.0.4 配置&#xff1a;不同主机名、时间同步、SSH 免密互通、关闭防火墙/SELinux/swap。 资源&#xff1a;建议 ≥2核 CPU、2GB 内存&#xff08;生产环境需更高&am…

Pytorch 实战四 VGG 网络训练

系列文章目录 文章目录 系列文章目录前言一、源码1. 解决线程冲突2.代码框架 二、代码详细介绍1.基础定义2. epoch 的定义3. 每组图片的训练和模型保存 前言 前面我们已经完成了数据集的制作&#xff0c;VGG 网络的搭建&#xff0c;现在进行网络模型的训练。 一、源码 import t…

课程专注度分析系统文档

一、项目概述 本项目基于 Flask 框架开发&#xff0c;结合计算机视觉技术&#xff08;利用 YOLOv10 等模型 &#xff09;&#xff0c;实现对课堂视频的智能分析。可检测视频中学生手机使用情况、面部表情&#xff08;专注、分心等 &#xff09;&#xff0c;统计专注度、手机使…

中国设计 全球审美 | 安贝斯新产品发布会:以东方美学开辟控制台仿生智造新纪元

6月17日&#xff0c;安贝斯&#xff08;武汉&#xff09;控制技术有限公司&#xff08;以下简称“安贝斯”&#xff09;在武汉隆重举行“新产品发布暨协会联合创新峰会”。近百位来自政府机构、行业协会、行业用户及战略合作伙伴的嘉宾齐聚现场&#xff0c;共同见证以“中国设计…

在微信小程序wxml文件调用函数实现时间转换---使用wxs模块实现

1. 创建 WXS 模块文件&#xff08;推荐单独存放&#xff09; 在项目目录下新建 utils.wxs 文件&#xff0c;编写时间转换逻辑&#xff1a; // utils.wxs module.exports {// 将毫秒转换为分钟&#xff08;保留1位小数&#xff09;convertToMinutes: function(ms) {if (typeo…

ByteMD 插件系统详解

ByteMD 插件系统详解 ByteMD 的插件系统是其强大扩展性的核心。它允许开发者在 Markdown 解析、AST 转换、HTML 渲染、以及编辑器 UI 交互的各个阶段注入自定义逻辑。这得益于 ByteMD 深度集成了 unified 处理器和其丰富的生态系统&#xff08;remark 用于 Markdown&#xff0c…

每日一练之 Lua 表

Lua 的 table 是什么数据结构&#xff1f;如何创建和访问&#xff1f; 数据结构:Lua的table是一种哈希表&#xff0c;使用键值对存储数据&#xff0c;支持动态扩容 创建方式: local t1 {} local t2 {10,20,30} local t3 {name"Alice",age25}访问方式&#xff1a…

实现自动胡批量抓取唯品会商品详情数据的途径分享(官方API、网页爬虫)

在电商领域&#xff0c;数据就是企业的核心资产。无论是市场分析、竞品研究&#xff0c;还是精准营销&#xff0c;都离不开对大量商品详情数据的深入挖掘。唯品会作为知名的电商平台&#xff0c;其丰富的商品信息对于众多从业者而言极具价值。本文将详细探讨实现自动批量抓取唯…

Zephyr 高阶实践:彻底讲透 west 构建系统、模块管理与跨平台 CI/CD 配置

本文是 Zephyr 项目管理体系的高阶解构与实战指南&#xff0c;全面覆盖 west 构建系统原理、模块解耦与 west.yml 多模块维护机制&#xff0c;结合企业级多平台 CI/CD 落地流程&#xff0c;深入讲解如何构建可靠、可维护、跨芯片架构的一体化 Zephyr 工程。 一、为什么 Zephyr …

我开源了一套springboot3快速开发模板

我开源了一套springboot3快速开发模板 开箱即用、按需组合、可快速二次开发的后端通用模板。 ✨ 主要特性 Spring Boot 3.x Java 17&#xff1a;跟随 Spring 最新生态&#xff0c;利用现代语法特性。多模块分层&#xff1a;common 抽象通用能力、starter 负责启动、modules…