276 lines
5.9 KiB
Markdown
276 lines
5.9 KiB
Markdown
# WVP-PRO 启动指南(使用 Java 17)
|
||
|
||
## 当前环境
|
||
- ✅ Java 17 已安装
|
||
- ✅ Node.js 已安装
|
||
- ✅ Docker 已安装
|
||
- ✅ 基础服务已启动(Redis、MySQL、ZLMediaKit)
|
||
- ✅ pom.xml 已修改为 Java 17
|
||
|
||
## 方案一:使用 PowerShell 编译(推荐)
|
||
|
||
### 1. 打开 PowerShell(管理员权限)
|
||
|
||
```powershell
|
||
cd C:\workspace\wvp-platform
|
||
```
|
||
|
||
### 2. 使用 Docker 编译项目
|
||
|
||
```powershell
|
||
docker run --rm -v "${PWD}:/app" -w /app eclipse-temurin:17-jdk cmd /c "apt-get update && apt-get install -y maven && mvn clean package -Dmaven.test.skip=true"
|
||
```
|
||
|
||
### 3. 检查编译结果
|
||
|
||
```powershell
|
||
ls target\wvp-pro*.jar
|
||
```
|
||
|
||
### 4. 配置连接参数
|
||
|
||
编辑 `src\main\resources\application-dev.yml`,确保以下配置正确:
|
||
|
||
```yaml
|
||
spring:
|
||
data:
|
||
redis:
|
||
host: 127.0.0.1
|
||
port: 6379
|
||
datasource:
|
||
url: jdbc:mysql://127.0.0.1:3306/wvp?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&serverTimezone=PRC&useSSL=false&allowMultiQueries=true&allowPublicKeyRetrieval=true
|
||
username: wvp_user
|
||
password: wvp_password
|
||
|
||
media:
|
||
ip: 127.0.0.1
|
||
http-port: 8080
|
||
```
|
||
|
||
### 5. 启动应用
|
||
|
||
```powershell
|
||
java -jar target\wvp-pro-2.7.4-*.jar --spring.profiles.active=dev
|
||
```
|
||
|
||
---
|
||
|
||
## 方案二:安装 Maven 后编译
|
||
|
||
### 1. 下载 Maven
|
||
|
||
访问:https://maven.apache.org/download.cgi
|
||
下载:apache-maven-3.9.6-bin.zip
|
||
|
||
### 2. 解压并配置环境变量
|
||
|
||
```powershell
|
||
# 解压到 C:\Program Files\apache-maven-3.9.6
|
||
|
||
# 添加到系统PATH
|
||
setx /M PATH "%PATH%;C:\Program Files\apache-maven-3.9.6\bin"
|
||
|
||
# 重启终端验证
|
||
mvn -version
|
||
```
|
||
|
||
### 3. 编译项目
|
||
|
||
```powershell
|
||
cd C:\workspace\wvp-platform
|
||
|
||
# 编译前端
|
||
cd web
|
||
npm install --registry=https://registry.npmmirror.com
|
||
npm run build:prod
|
||
cd ..
|
||
|
||
# 编译后端
|
||
mvn clean package -Dmaven.test.skip=true
|
||
```
|
||
|
||
### 4. 启动应用
|
||
|
||
```powershell
|
||
java -jar target\wvp-pro-2.7.4-*.jar --spring.profiles.active=dev
|
||
```
|
||
|
||
---
|
||
|
||
## 方案三:使用已编译的版本(最快)
|
||
|
||
如果您之前编译过项目,可以直接运行:
|
||
|
||
```powershell
|
||
# 找到已编译的 jar 文件
|
||
ls target\*.jar
|
||
|
||
# 直接运行
|
||
java -jar target\wvp-pro-2.7.4-<timestamp>.jar --spring.profiles.active=dev
|
||
```
|
||
|
||
---
|
||
|
||
## 验证服务
|
||
|
||
### 1. 检查基础服务状态
|
||
|
||
```powershell
|
||
docker ps --filter "name=polaris-"
|
||
```
|
||
|
||
应该看到:
|
||
- docker-polaris-redis-1 (健康运行)
|
||
- docker-polaris-mysql-1 (健康运行)
|
||
- docker-polaris-media-1 (运行中)
|
||
|
||
### 2. 测试数据库连接
|
||
|
||
```powershell
|
||
docker exec -it docker-polaris-mysql-1 mysql -u wvp_user -pwvp_password -e "show databases;"
|
||
```
|
||
|
||
应该看到 `wvp` 数据库。
|
||
|
||
### 3. 访问应用
|
||
|
||
启动后访问:
|
||
- **管理后台**: http://localhost:18080
|
||
- **API 文档**: http://localhost:18080/doc.html
|
||
- **默认账号**: admin / admin
|
||
|
||
---
|
||
|
||
## 常见问题
|
||
|
||
### 1. 端口冲突
|
||
|
||
如果 18080 端口被占用:
|
||
|
||
```yaml
|
||
# 修改 src/main/resources/application-dev.yml
|
||
server:
|
||
port: 28080 # 改为其他端口
|
||
```
|
||
|
||
### 2. 数据库连接失败
|
||
|
||
检查 MySQL 是否健康:
|
||
|
||
```powershell
|
||
docker logs docker-polaris-mysql-1
|
||
```
|
||
|
||
### 3. Redis 连接失败
|
||
|
||
检查 Redis 状态:
|
||
|
||
```powershell
|
||
docker exec -it docker-polaris-redis-1 redis-cli ping
|
||
```
|
||
|
||
应该返回 `PONG`
|
||
|
||
### 4. ZLMediaKit 连接失败
|
||
|
||
检查 ZLMediaKit 日志:
|
||
|
||
```powershell
|
||
docker logs docker-polaris-media-1
|
||
```
|
||
|
||
---
|
||
|
||
## 功能模块位置
|
||
|
||
### 主码流/子码流切换
|
||
- **控制器**: `src/main/java/com/genersoft/iot/vmp/gb28181/controller/DeviceQuery.java`
|
||
- **服务**: `src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/PlayServiceImpl.java`
|
||
- **API**: `/api/play/{deviceId}/{channelId}/start` (带 streamType 参数)
|
||
|
||
### 云台控制(转向、拉近、拉远)
|
||
- **控制器**: `src/main/java/com/genersoft/iot/vmp/gb28181/controller/PtzController.java`
|
||
- **服务**: `src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/PTZServiceImpl.java`
|
||
- **命令**: `src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java`
|
||
- **API**:
|
||
- `/api/front-end/{deviceId}/{channelId}/ptz` - PTZ控制
|
||
- `/api/front-end/{deviceId}/{channelId}/left` - 左转
|
||
- `/api/front-end/{deviceId}/{channelId}/right` - 右转
|
||
- `/api/front-end/{deviceId}/{channelId}/up` - 上转
|
||
- `/api/front-end/{deviceId}/{channelId}/down` - 下转
|
||
- `/api/front-end/{deviceId}/{channelId}/zoom_in` - 拉近
|
||
- `/api/front-end/{deviceId}/{channelId}/zoom_out` - 拉远
|
||
|
||
### 设备接入管理
|
||
- **设备服务**: `src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceServiceImpl.java`
|
||
- **注册处理**: `src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java`
|
||
- **心跳处理**: `src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/MessageRequestProcessor.java`
|
||
- **SIP层**: `src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java`
|
||
|
||
---
|
||
|
||
## 停止服务
|
||
|
||
### 停止 WVP 应用
|
||
在运行窗口按 `Ctrl + C`
|
||
|
||
### 停止 Docker 服务
|
||
```powershell
|
||
cd docker
|
||
docker compose down
|
||
```
|
||
|
||
### 只停止 WVP,保留基础服务
|
||
```powershell
|
||
cd docker
|
||
docker compose stop polaris-wvp polaris-nginx
|
||
```
|
||
|
||
---
|
||
|
||
## 日志查看
|
||
|
||
### WVP 应用日志
|
||
应用启动后,日志会输出到控制台和 `logs/` 目录
|
||
|
||
### Docker 服务日志
|
||
```powershell
|
||
# 查看所有服务日志
|
||
cd docker
|
||
docker compose logs -f
|
||
|
||
# 查看特定服务日志
|
||
docker compose logs -f polaris-mysql
|
||
docker compose logs -f polaris-redis
|
||
docker compose logs -f polaris-media
|
||
```
|
||
|
||
---
|
||
|
||
## 下一步
|
||
|
||
### 1. 测试设备接入
|
||
|
||
配置国标设备连接到 WVP:
|
||
- SIP 服务器: `你的IP地址`
|
||
- SIP 端口: `8160`
|
||
- SIP 域: `3502000000`
|
||
- 设备ID: 20位国标编码
|
||
- 密码: `wvp_sip_password`
|
||
|
||
### 2. 查看设备列表
|
||
|
||
访问 http://localhost:18080 后,在"国标设备"菜单查看已接入设备
|
||
|
||
### 3. 测试云台控制
|
||
|
||
在设备通道列表中,点击"云台控制"按钮测试
|
||
|
||
### 4. 测试视频播放
|
||
|
||
在通道列表中点击"播放"按钮,查看视频流
|
||
|
||
---
|
||
|
||
最后更新: 2026-02-02
|