Files
gangyan/chat_web_backend/编译和启动说明.md

3.6 KiB
Raw Permalink Blame History

chat_web_backend 编译和启动说明

编译步骤

⚠️ 重要提示

项目需要使用 Java 11 来编译Java 21 与旧版 Lombok 不兼容)

方法1使用编译脚本推荐

cd /home/gc/gangyan/chat_web_backend
./compile.sh

方法2手动编译

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

cd /home/gc/gangyan/chat_web_backend
mvn clean package -DskipTests

3. 完整编译(包含测试,时间较长)

mvn clean package

4. 如果编译失败,可以尝试:

# 清理本地仓库缓存
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使用启动脚本推荐

cd /home/gc/gangyan/chat_web_backend
./start.sh

方式2手动启动使用 Java 11

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后台运行

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参数

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

检查服务状态

启动后,检查端口是否监听:

netstat -tuln | grep 8099
# 或
ss -tuln | grep 8099

测试API是否正常

curl http://localhost:8099/chat_web_backend/app/api/config

停止服务

找到进程并停止:

# 查找进程
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连接失败

  • 当前配置使用远程Redis127.0.0.1:6379
  • 确保网络可以访问远程Redis服务器

配置文件位置

主要配置文件:

  • src/main/resources/application.yml - 主配置
  • src/main/resources/application-yj.yml - yj环境配置当前激活

日志位置

日志文件位置根据logback配置

  • 控制台输出
  • 如果配置了文件日志,通常在项目根目录的 logs/ 目录