海滨擎蟹

Spring Boot 配置 Druid 数据源构建时报错 `'dependencies.dependency.systemPath' for com.sun:tools:jar must specify an absolute path`

Spring Boot 配置 Druid 数据源构建时报错

    Errors occurred while build effective model from C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.alibaba\druid\1.2.11\7a2e5cad15e457ab8d36d01a442d1aac667fd560\druid-1.2.11.pom:
    'dependencies.dependency.systemPath' for com.sun:tools:jar must specify an absolute path 
but is ${project.basedir}/lib/openjdk-1.8-tools.jar in com.alibaba:druid:1.2.11
    'dependencies.dependency.systemPath' for com.sun:jconsole:jar must specify an absolute path 
but is ${project.basedir}/lib/openjdk-1.8-jconsole.jar in com.alibaba:druid:1.2.11

配置操作参照 Spring Boot中使用 MyBatis,项目使用的 Gradle 构建,添加依赖如下:

    implementation 'org.springframework.boot:spring-boot-starter-jdbc:2.7.2'
    implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.2'
    implementation 'com.alibaba:druid-spring-boot-starter:1.2.11'

百度找到大概原因是 alibaba 团队不怎么重视这个 Druid 构建时报的错误,如果是使用的 jdk1.8 就没有问题(猜测,问题里说没有兼容JDK11),但如果使用了高版本,就只能自己处理了。但这个不影响运行,是可以忽略的。也有人提到修改 druid-1.2.11.pom 文件,找到 com.sun:toolscom.sun:jconsole 两个依赖,注释掉就行,测试是可行的。

之后又遇到一个问题:Druid 监控后台打不开。教程里Druid数据源配置除了 url-pattern: /druid/*,还设置了一个 context-path:

server:
  context-path: /web

所以 Druid 监控默认的访问地址是 http://localhost:8080/web/druid/。但这访问不了,网上找了一下,有的提到是依赖 implementation 'com.alibaba:druid:1.2.11' 的问题,应该改成 com.alibaba:druid-spring-boot-starter:1.2.11,显然我方面没有问题。

又发现一篇说是 springboot 2.0 以后要设置 server.servlet.context-path,而 server.context-path 在 springboot 2.0 以下起作用。试了一下,完全正确,但没有找到 springboot 关于 server 配置的文档。

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »