金仓老旧项目改造-1

一、Maven 构建失败 --- KingBase 驱动缺失

**问题**:`com.kingbase8:kingbase8:jar:8.6.0` 无法从私服解析,且失败结果被 Maven 缓存导致反复失败。

**解决方案**:

  1. 清除 `$env:USERPROFILE\.m2\repository\com\kingbase8` 下的缓存

  2. 将本地已有的 `D:\LEO\bin\kingbase\Interface\jdbc\kingbase8-9.0.0.jar` 以 `8.6.0` 坐标手动复制到本地 Maven 仓库 `d:\LEO\Download\maven_repository\com\kingbase8\kingbase8\8.6.0\`,并创建对应 pom 文件


二、启动失败 --- PageHelper 不支持 kingbase 方言

**问题**:`PageException: 初始化 helper [kingbase] 时出错`,`ClassNotFoundException: kingbase`

**根因**:PageHelper 5.1.8 未注册 `kingbase` 方言别名,只支持 `postgresql`、`mysql`、`oracle` 等标准名称。

**解决方案**:修改 [application.yml](file:///d:\LEO\project\backend\src\main\resources\application.yml):

```

helperDialect: kingbase → helperDialect: postgresql

```


三、启动失败 --- Nacos 配置覆盖导致连接远端数据库

**问题**:Druid 持续报错连接 `jdbc:mysql://192.168.xx.xx:3306`(远端服务器)

**根因**:Nacos 上 `server-local.yaml` 的数据库配置未更新,覆盖了本地 properties 中的 KingBase 配置。

**解决方案**:登录 Nacos 控制台(`http://localhost:8848/nacos\`)手动修正该配置。


四、启动失败 --- Druid WallFilter 不支持 kingbase8 类型

**问题**:`IllegalStateException: dbType not support : kingbase, url jdbc:kingbase8://...`

**根因**:Druid 1.0.29 的 WallFilter 在 `init()` 时根据 URL scheme 推断 dbType,不识别 `kingbase8`。

**解决方案**:修改 [DruidConfig.java](file:///d:\LEO\project\backend\config\druid\DruidConfig.java),当 filters 包含 `wall` 时,手动创建 `WallFilter` 并设置 `dbType = "postgresql"`,再通过 `setProxyFilters()` 注入。


五、Swagger UI 无法加载 --- Profile 限制 + 条件注解永假

**问题**:访问 `/swagger-ui.html` 弹出 "Unable to infer base url",访问 `/v2/api-docs` 返回 404。

**根因(双重)**:

  1. `@Profile({"dev","test"})` --- local 环境下 Swagger 配置类不加载

  2. `@ConditionalOnProperty(prefix = "swagger", value = "false", havingValue = "false")` --- 条件配置逻辑异常,实际永远不成立,导致 Bean 从未被创建

**解决方案**:修改 [Swagger2Configuration.java](file:///d:\LEO\project\backend\config\Swagger2Configuration.java):

  • `@Profile` 增加 `"local"`

  • 删除 `@ConditionalOnProperty` 注解


**最终结果**:应用在本地成功启动,端口 `18084`,已注册 Nacos,Dubbo 服务全部导出,Swagger UI 正常可访问。

相关推荐
云边有个稻草人11 天前
数据库性能调优实战:从瓶颈诊断到落地优化
网络·数据库·oracle·金仓·kes
wei_shuo22 天前
数据库安全最后一公里:金仓SQL防火墙如何填平开发留下的注入坑
数据库·kingbase·金仓
禁默23 天前
金仓数据库SQL防火墙构建主动防御,让恶意SQL无处遁形
数据库·金仓
聆风吟º23 天前
金仓数据库 SQL 防火墙:内核级防护,筑牢 SQL 注入安全防线
数据库·sql·安全·金仓·kingbasees
wei_shuo1 个月前
数据库优化器进化论:金仓如何用智能下推把查询时间从秒级打到毫秒级
数据库·kingbase·金仓
xcLeigh1 个月前
复杂 SQL 过滤时机过晚?金仓基于代价的连接条件下推方案来了
java·数据库·sql语句·union·金仓·kingbasees
xcLeigh1 个月前
Oracle 替换工程实践深度解析:金仓数据库破解 PL/SQL 兼容与跨交易日数据一致性核心难题
数据库·sql·oracle·数据迁移·金仓·kingbasees
魑-魅-魍-魉2 个月前
金仓数据库(KingbaseES)Windows 安装避坑指南:从 Connection Refused 到服务启动的完整实战记录
数据库·金仓
魑-魅-魍-魉2 个月前
金仓数据库(KingbaseES)V8R3 Windows 版大小写敏感设置详解
数据库·windows·金仓