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

发布于:2025-06-22 ⋅ 阅读:(16) ⋅ 点赞:(0)

一.源码拉取

        当前时间: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: {}


网站公告

今日签到

点亮在社区的每一天
去签到