本地开发模式启动JHipster微服务时网关H2连接失败如何解决
问题核心原因
网关应用开发环境(dev profile)下需要的H2数据库相关依赖的作用域被限制为test,正常运行阶段无法加载对应驱动。
从错误栈最后一行可直接定位问题:应用尝试创建H2连接工厂时,检测到的可用驱动只有postgresql和pool,缺少H2驱动。这与你提供的网关pom.xml配置完全对应:test作用域的依赖仅会在单元测试执行时加载,dev环境启动属于正常运行阶段,不会加载该范围的依赖。
解决方案
方案一:调整依赖作用域(继续使用H2作为开发环境数据库)
修改网关项目pom.xml中的H2相关依赖配置,移除<scope>test</scope>配置,调整后如下:
<dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> </dependency> <dependency> <groupId>io.r2dbc</groupId> <artifactId>r2dbc-h2</artifactId> </dependency>
修改完成后重新执行mvnw启动网关即可。
方案二:切换开发环境数据库为PostgreSQL
如果不想使用H2,可修改网关src/main/resources/config/application-dev.yml中的数据库配置,将数据源从H2改为PostgreSQL,提前启动项目生成的PostgreSQL docker容器后再启动网关即可。
内容的提问来源于stack exchange,提问作者Kleinstein11
相关产品推荐
相关产品推荐

