162 lines
3.6 KiB
Markdown
162 lines
3.6 KiB
Markdown
|
|
# chat_web_backend 编译和启动说明
|
|||
|
|
|
|||
|
|
## 编译步骤
|
|||
|
|
|
|||
|
|
### ⚠️ 重要提示
|
|||
|
|
**项目需要使用 Java 11 来编译**(Java 21 与旧版 Lombok 不兼容)
|
|||
|
|
|
|||
|
|
### 方法1:使用编译脚本(推荐)
|
|||
|
|
```bash
|
|||
|
|
cd /home/gc/gangyan/chat_web_backend
|
|||
|
|
./compile.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 方法2:手动编译
|
|||
|
|
```bash
|
|||
|
|
cd /home/gc/gangyan/chat_web_backend
|
|||
|
|
|
|||
|
|
# 设置使用 Java 11
|
|||
|
|
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
|
|||
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|||
|
|
|
|||
|
|
# 编译项目(跳过测试)
|
|||
|
|
mvn clean package -DskipTests
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 方法3:如果系统默认就是 Java 11
|
|||
|
|
```bash
|
|||
|
|
cd /home/gc/gangyan/chat_web_backend
|
|||
|
|
mvn clean package -DskipTests
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. 完整编译(包含测试,时间较长)
|
|||
|
|
```bash
|
|||
|
|
mvn clean package
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 4. 如果编译失败,可以尝试:
|
|||
|
|
```bash
|
|||
|
|
# 清理本地仓库缓存
|
|||
|
|
mvn clean
|
|||
|
|
|
|||
|
|
# 强制更新依赖
|
|||
|
|
mvn clean package -U -DskipTests
|
|||
|
|
|
|||
|
|
# 离线模式(如果网络有问题)
|
|||
|
|
mvn clean package -o -DskipTests
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 编译输出
|
|||
|
|
|
|||
|
|
编译成功后,JAR文件位置:
|
|||
|
|
```
|
|||
|
|
target/chat_web_yj.jar
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 启动方式
|
|||
|
|
|
|||
|
|
### ⚠️ 重要:必须使用 Java 11 运行
|
|||
|
|
|
|||
|
|
**原因**:Java 21 与 Dozer/JAXB 不兼容,会导致启动失败。
|
|||
|
|
|
|||
|
|
### 方式1:使用启动脚本(推荐)
|
|||
|
|
```bash
|
|||
|
|
cd /home/gc/gangyan/chat_web_backend
|
|||
|
|
./start.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 方式2:手动启动(使用 Java 11)
|
|||
|
|
```bash
|
|||
|
|
cd /home/gc/gangyan/chat_web_backend
|
|||
|
|
|
|||
|
|
# 设置使用 Java 11
|
|||
|
|
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
|
|||
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|||
|
|
|
|||
|
|
# 启动应用
|
|||
|
|
java -jar target/chat_web_yj.jar --spring.profiles.active=yj
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 方式3:后台运行
|
|||
|
|
```bash
|
|||
|
|
cd /home/gc/gangyan/chat_web_backend
|
|||
|
|
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
|
|||
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|||
|
|
nohup java -jar target/chat_web_yj.jar --spring.profiles.active=yj > /tmp/chat_backend.log 2>&1 &
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 方式4:指定JVM参数
|
|||
|
|
```bash
|
|||
|
|
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
|
|||
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|||
|
|
java -Xms512m -Xmx2048m -jar target/chat_web_yj.jar --spring.profiles.active=yj
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 检查服务状态
|
|||
|
|
|
|||
|
|
启动后,检查端口是否监听:
|
|||
|
|
```bash
|
|||
|
|
netstat -tuln | grep 8099
|
|||
|
|
# 或
|
|||
|
|
ss -tuln | grep 8099
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
测试API是否正常:
|
|||
|
|
```bash
|
|||
|
|
curl http://localhost:8099/chat_web_backend/app/api/config
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 停止服务
|
|||
|
|
|
|||
|
|
找到进程并停止:
|
|||
|
|
```bash
|
|||
|
|
# 查找进程
|
|||
|
|
ps aux | grep chat_web_yj
|
|||
|
|
|
|||
|
|
# 停止进程(替换PID为实际进程ID)
|
|||
|
|
kill <PID>
|
|||
|
|
|
|||
|
|
# 强制停止
|
|||
|
|
kill -9 <PID>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 常见问题
|
|||
|
|
|
|||
|
|
### 1. 启动时 Dozer/JAXB 错误
|
|||
|
|
**错误信息**:`Cannot invoke "java.lang.reflect.Method.invoke" because "com.sun.xml.bind.v2.runtime.reflect.opt.Injector.defineClass" is null`
|
|||
|
|
|
|||
|
|
**解决方案**:
|
|||
|
|
- ✅ 已添加 JAXB 依赖到 pom.xml
|
|||
|
|
- ✅ 必须使用 **Java 11** 运行(不要用 Java 21)
|
|||
|
|
- 使用启动脚本 `./start.sh` 会自动使用 Java 11
|
|||
|
|
|
|||
|
|
### 2. 编译时依赖下载失败
|
|||
|
|
- 检查网络连接
|
|||
|
|
- 尝试使用国内Maven镜像源
|
|||
|
|
- 使用 `-U` 参数强制更新
|
|||
|
|
|
|||
|
|
### 3. 端口被占用
|
|||
|
|
- 检查8099端口:`netstat -tuln | grep 8099`
|
|||
|
|
- 修改 `application-yj.yml` 中的端口配置
|
|||
|
|
|
|||
|
|
### 4. 数据库连接失败
|
|||
|
|
- 当前配置使用远程数据库:`127.0.0.1:3306`
|
|||
|
|
- 数据库名:`chat_LLM`
|
|||
|
|
- 确保网络可以访问远程数据库服务器
|
|||
|
|
|
|||
|
|
### 5. Redis连接失败
|
|||
|
|
- 当前配置使用远程Redis:`127.0.0.1:6379`
|
|||
|
|
- 确保网络可以访问远程Redis服务器
|
|||
|
|
|
|||
|
|
## 配置文件位置
|
|||
|
|
|
|||
|
|
主要配置文件:
|
|||
|
|
- `src/main/resources/application.yml` - 主配置
|
|||
|
|
- `src/main/resources/application-yj.yml` - yj环境配置(当前激活)
|
|||
|
|
|
|||
|
|
## 日志位置
|
|||
|
|
|
|||
|
|
日志文件位置(根据logback配置):
|
|||
|
|
- 控制台输出
|
|||
|
|
- 如果配置了文件日志,通常在项目根目录的 `logs/` 目录
|