jeecgboot / JeecgBoot

🔥「企业级低代码平台」前后端分离架构SpringBoot 2.x/3.x,SpringCloud,Ant Design&Vue3,Mybatis,Shiro,JWT。强大的代码生成器让前后端代码一键生成,无需写任何代码! 引领新的开发模式OnlineCoding->代码生成->手工MERGE,帮助Java项目解决70%重复工作,让开发更关注业务,既能快速提高效率,帮助公司节省成本,同时又不失灵活性。
http://www.jeecg.com
Apache License 2.0
40.1k stars 14.7k forks source link

java.sql.SQLException: There is no DataSource named 'null' #3766

Closed TengNo1 closed 2 years ago

TengNo1 commented 2 years ago
版本号:

3.2.0

问题描述:

java.sql.SQLException: There is no DataSource named 'null'

截图&代码:

c1ac93a3672970636dcee44dcfe0c35

java.sql.SQLException: There is no DataSource named 'null' at org.quartz.utils.DBConnectionManager.shutdown(DBConnectionManager.java:135) at org.quartz.impl.jdbcjobstore.JobStoreSupport.shutdown(JobStoreSupport.java:746) at org.quartz.core.QuartzScheduler.shutdown(QuartzScheduler.java:732) at org.quartz.impl.StdSchedulerFactory.shutdownFromInstantiateException(StdSchedulerFactory.java:1431) at org.quartz.impl.StdSchedulerFactory.instantiate(StdSchedulerFactory.java:1391) at org.quartz.impl.StdSchedulerFactory.getScheduler(StdSchedulerFactory.java:1579) at org.springframework.scheduling.quartz.SchedulerFactoryBean.createScheduler(SchedulerFactoryBean.java:679) at org.springframework.scheduling.quartz.SchedulerFactoryBean.prepareScheduler(SchedulerFactoryBean.java:616) at org.springframework.scheduling.quartz.SchedulerFactoryBean.afterPropertiesSet(SchedulerFactoryBean.java:504) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1389) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1309) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:656) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:639) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119)

友情提示(为了提高issue处理效率):

zhangdaiscott commented 2 years ago

怎么出现的

TengNo1 commented 2 years ago

单体切换成微服务的时候出现的, 我的操作流程是这样的: 本地nacos版本2.0.4,复制jeecg的两个配置文件进去。

只改了jeecg-dev.yaml,下边是改之后的:主要改了数据库连接那一部分 spring: datasource: druid: stat-view-servlet: enabled: true loginUsername: admin loginPassword: 123456 allow: web-stat-filter: enabled: true dynamic: druid: # 全局druid参数,绝大部分值和默认保持一致。(现已支持的参数如下,不清楚含义不要乱设置)

连接池的配置信息

    # 初始化大小,最小,最大
    initial-size: 5
    min-idle: 5
    maxActive: 20
    # 配置获取连接等待超时的时间
    maxWait: 60000
    # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
    timeBetweenEvictionRunsMillis: 60000
    # 配置一个连接在池中最小生存的时间,单位是毫秒
    minEvictableIdleTimeMillis: 300000
    validationQuery: SELECT 1 FROM DUAL
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    # 打开PSCache,并且指定每个连接上PSCache的大小
    poolPreparedStatements: true
    maxPoolPreparedStatementPerConnectionSize: 20
    # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
    filters: stat,wall,slf4j
    # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
    connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000

  datasource:
    master:
      url: jdbc:mysql://127.0.0.1:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
      username: root
      password: ***@***.***#123
      driver-class-name: com.mysql.cj.jdbc.Driver
      # 多数据源配置
      #multi-datasource1:
      #url: jdbc:mysql://localhost:3306/jeecg-boot2?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
      #username: root
      #password: root
      #driver-class-name: com.mysql.cj.jdbc.Driver

redis 配置

redis: database: 0 host: jeecg-boot-redis lettuce: pool: max-active: 8 #最大连接数据库连接数,设 0 为没有限制 max-idle: 8 #最大等待连接中的数量,设 0 为没有限制 max-wait: -1ms #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。 min-idle: 0 #最小等待连接中的数量,设 0 为没有限制 shutdown-timeout: 100ms password: port: 6379

rabbitmq配置

rabbitmq: host: jeecg-boot-rabbitmq username: guest password: guest port: 5672 publisher-confirms: true publisher-returns: true virtual-host: / listener: simple: acknowledge-mode: manual

消费者的最小数量

    concurrency: 1
    #消费者的最大数量
    max-concurrency: 1
    #是否支持重试
    retry:
      enabled: true

minidao

minidao : base-package: org.jeecg.modules.jmreport.*

jeecg专用配置

jeecg :

本地:local\Minio:minio\阿里云:alioss

uploadType: local path :

文件上传根目录 设置

upload: D://opt//upFiles
#webapp文件路径
webapp: D://opt//webapp

shiro: excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/,/category/,/map/,/jmreport/bigscreen2/

阿里云oss存储配置

oss: endpoint: oss-cn-beijing.aliyuncs.com accessKey: ?? secretKey: ?? bucketName: jeecgdev staticDomain: ??

ElasticSearch 6设置

elasticsearch: cluster-name: jeecg-ES cluster-nodes: 127.0.0.1:9200 check-enabled: false

表单设计器配置

desform:

主题颜色(仅支持 16进制颜色代码)

theme-color: "#1890ff"
# 文件、图片上传方式,可选项:qiniu(七牛云)、system(跟随系统配置)
upload-type: system
map:
  # 配置百度地图的AK,申请地址:https://lbs.baidu.com/apiconsole/key?application=key#/home
  baidu: ??

在线预览文件服务器地址配置

file-view-domain: 127.0.0.1:8012

minio文件上传

minio: minio_url: http://minio.jeecg.com minio_name: ?? minio_pass: ?? bucketName: otatest

大屏报表参数设置

jmreport: mode: dev

是否需要校验token

is_verify_token: false
#必须校验方法
verify_methods: remove,delete,save,add,update

Wps在线文档

wps: domain: https://wwo.wps.cn/office/ appid: ?? appsecret: ??

xxl-job配置

xxljob: enabled: false adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin appname: ${spring.application.name} accessToken: '' logPath: logs/jeecg/job/jobhandler/ logRetentionDays: 30

自定义路由配置 yml nacos database

route: config: data-id: jeecg-gateway-router group: DEFAULT_GROUP data-type: yml

分布式锁配置

redisson: address: jeecg-boot-redis:6379 password: type: STANDALONE enabled: true

Mybatis输出sql日志

logging: level: org.jeecg.modules.system.mapper : info

cas单点登录

cas: prefixUrl: http://localhost:8888/cas

swagger

knife4j: production: false basic: enable: true username: jeecg password: jeecg1314

第三方登录

justauth: enabled: true type: GITHUB: client-id: ?? client-secret: ?? redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback WECHAT_ENTERPRISE: client-id: ?? client-secret: ?? redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback agent-id: 1000002 DINGTALK: client-id: ?? client-secret: ?? redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback cache: type: default prefix: 'demo::' timeout: 1h

第三方APP对接

third-app: enabled: false type:

企业微信

WECHAT_ENTERPRISE:
  enabled: false
  #CORP_ID
  client-id: ??
  #SECRET
  client-secret: ??
  agent-id: ??
  #自建应用秘钥(新版企微需要配置)
  # agent-app-secret: ??
#钉钉
DINGTALK:
  enabled: false
  # appKey
  client-id: ??
  # appSecret
  client-secret: ??
  agent-id: ??

然后:

最后启动这个服务报错了:

------------------ 原始邮件 ------------------ 发件人: "jeecgboot/jeecg-boot" @.>; 发送时间: 2022年6月1日(星期三) 上午10:18 @.>; @.**@.>; 主题: Re: [jeecgboot/jeecg-boot] java.sql.SQLException: There is no DataSource named 'null' (Issue #3766)

怎么出现的

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

zhangdaiscott commented 2 years ago

naocs配置应该有问题,不是提供了nacos的数据库脚本吗

TengNo1 commented 2 years ago

使用了,提供的nacos的数据库脚本之后,报了个空指针,这个要怎么解决呢

------------------ 原始邮件 ------------------ 发件人: "jeecgboot/jeecg-boot" @.>; 发送时间: 2022年6月1日(星期三) 中午11:02 @.>; @.**@.>; 主题: Re: [jeecgboot/jeecg-boot] java.sql.SQLException: There is no DataSource named 'null' (Issue #3766)

naocs配置应该有问题,不是提供了nacos的数据库脚本吗

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

zhangdaiscott commented 2 years ago

自己排查