github-actions[bot] commented on issue #16520: URL: https://github.com/apache/dolphinscheduler/issues/16520#issuecomment-2311637260
### Search before asking - [X] I had searched in the [issues](https://github.com/apache/dolphinscheduler/issues?q=is%3Aissue) and found no similar issues. ### What happened ### Error message The API Server of DolphinScheduler 3.2.2 fails to start with the error message as below: ``` Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. [ERROR] 2024-08-27 13:45:57.395 +0800 o.s.b.SpringApplication:[824] - Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cloudController': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cloudServiceImpl' defined in URL [jar:file:/usr/hadoop/dolphinscheduler/api-server/libs/dolphinscheduler-api-3.2.2.jar!/org/apache/dolphinscheduler/api/service/impl/CloudServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.ExceptionInInitializerError at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:332) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1431) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619) 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.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:734) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295) at org.apache.dolphinscheduler.api.ApiApplicationServer.main(ApiApplicationServer.java:65) Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cloudServiceImpl' defined in URL [jar:file:/usr/hadoop/dolphinscheduler/api-server/libs/dolphinscheduler-api-3.2.2.jar!/org/apache/dolphinscheduler/api/service/impl/CloudServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.ExceptionInInitializerError at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1334) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1232) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) 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:1391) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311) at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:544) at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:520) at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:673) at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:228) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:329) ... 17 common frames omitted Caused by: java.lang.ExceptionInInitializerError: null at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:211) at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:87) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1326) ... 33 common frames omitted Caused by: java.lang.IllegalArgumentException: Must provide non-null values for clientId, tenantId, clientSecret properties in ClientSecretCredentialBuilder at com.azure.identity.implementation.util.ValidationUtil.validate(ValidationUtil.java:27) at com.azure.identity.ClientSecretCredentialBuilder.build(ClientSecretCredentialBuilder.java:74) at org.apache.dolphinscheduler.api.service.impl.CloudServiceImpl.<clinit>(CloudServiceImpl.java:55) ... 40 common frames omitted ``` ### Application.yml The configuration in `$APISERVER_HOME/conf/application.yml` as below: ```yml server: port: 12345 servlet: session: timeout: 120m context-path: /dolphinscheduler/ compression: enabled: true mime-types: text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json,application/xml jetty: max-http-form-post-size: 5000000 # 数据库连接 spring: banner: charset: UTF-8 jackson: time-zone: GMT+8 date-format: "yyyy-MM-dd HH:mm:ss" servlet: multipart: max-file-size: 1024MB max-request-size: 1024MB messages: basename: i18n/messages # 数据库连接 datasource: driver-class-name: com.mysql.jdbc.Driver url: "jdbc:mysql://192.168.3.240:4408/dolphinscheduler?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false" username: dolphins password: dolphins123 hikari: connection-test-query: select 1 minimum-idle: 5 auto-commit: true validation-timeout: 3000 pool-name: DolphinScheduler maximum-pool-size: 50 connection-timeout: 30000 idle-timeout: 600000 leak-detection-threshold: 0 initialization-fail-timeout: 1 # Quartz 相关配置 quartz: auto-startup: false job-store-type: jdbc jdbc: initialize-schema: never properties: org.quartz.jobStore.isClustered: true org.quartz.jobStore.class: org.springframework.scheduling.quartz.LocalDataSourceJobStore org.quartz.scheduler.instanceId: AUTO org.quartz.jobStore.tablePrefix: QRTZ_ org.quartz.jobStore.acquireTriggersWithinLock: true org.quartz.scheduler.instanceName: DolphinScheduler org.quartz.jobStore.useProperties: false org.quartz.jobStore.misfireThreshold: 60000 org.quartz.scheduler.makeSchedulerThreadDaemon: true org.quartz.jobStore.driverDelegateClass: org.quartz.impl.jdbcjobstore.PostgreSQLDelegate org.quartz.jobStore.clusterCheckinInterval: 5000 org.quartz.threadPool.class: org.apache.dolphinscheduler.scheduler.quartz.QuartzZeroSizeThreadPool mvc: pathmatch: matching-strategy: ANT_PATH_MATCHER management: endpoints: web: exposure: include: '*' endpoint: health: enabled: true show-details: always health: db: enabled: true defaults: enabled: false metrics: tags: application: ${spring.application.name} # 注册中心配置 registry: type: zookeeper zookeeper: namespace: dolphinscheduler connect-string: h141:2181,h143:2181,h142:2181 retry-policy: base-sleep-time: 60ms max-sleep: 300ms max-retries: 5 session-timeout: 30s connection-timeout: 30s block-until-connected: 600ms digest: ~ api: audit-enable: false # Traffic control, if you turn on this config, the maximum number of request/s will be limited. # global max request number per second # default tenant-level max request number traffic-control: global-switch: false max-global-qps-rate: 300 tenant-switch: false default-tenant-qps-rate: 10 #customize-tenant-qps-rate: # eg. #tenant1: 11 #tenant2: 20 python-gateway: # Weather enable python gateway server or not. The default value is false. enabled: false # Authentication token for connection from python api to python gateway server. Should be changed the default value # when you deploy in public network. auth-token: jwUDzpLsNKEFER4*a8gruBH_GsAurNxU7A@Xc # The address of Python gateway server start. Set its value to `0.0.0.0` if your Python API run in different # between Python gateway server. It could be be specific to other address like `127.0.0.1` or `localhost` gateway-server-address: 0.0.0.0 # The port of Python gateway server start. Define which port you could connect to Python gateway server from # Python API side. gateway-server-port: 25333 # The address of Python callback client. python-address: 127.0.0.1 # The port of Python callback client. python-port: 25334 # Close connection of socket server if no other request accept after x milliseconds. Define value is (0 = infinite), # and socket server would never close even though no requests accept connect-timeout: 0 # Close each active connection of socket server if python program not active after x milliseconds. Define value is # (0 = infinite), and socket server would never close even though no requests accept read-timeout: 0 metrics: enabled: true security: authentication: # Authentication types (supported types: PASSWORD,LDAP,CASDOOR_SSO) type: PASSWORD # IF you set type `LDAP`, below config will be effective ldap: # ldap server config urls: ldap://ldap.forumsys.com:389/ base-dn: dc=example,dc=com username: cn=read-only-admin,dc=example,dc=com password: password user: # admin userId when you use LDAP login admin: read-only-admin identity-attribute: uid email-attribute: mail # action when ldap user is not exist (supported types: CREATE,DENY) not-exist-action: CREATE ssl: enable: false # jks file absolute path && password trust-store: /ldapkeystore.jks trust-store-password: password casdoor: user: admin: admin oauth2: enable: false provider: github: authorizationUri: "abc" redirectUri: "abc" clientId: "abc" clientSecret: "abc" tokenUri: "abc" userInfoUri: "abc" callbackUrl: "abc" iconUri: "abc" provider: github google: authorizationUri: "abc" redirectUri: "abc" clientId: "abc" clientSecret: "abc" tokenUri: "abc" userInfoUri: "abc" callbackUrl: "abc" iconUri: "abc" provider: google casdoor: # Casdoor 服务器 URL endpoint: Your Casdoor server url # Casdoor 中的 ID client-id: Casdoor Client ID # Casdoor 中的密钥 client-secret: Casdoor Client Secret # Casdoor 中的证书 certificate: Casdoor Certificate # Casdoor 中的组织名称 organization-name: casdoor organization name # Casdoor 中的应用名称 application-name: casdoor application name # dolphinscheduler 登录 URL redirect-url: DolphinScheduler 登录地址 # Traffic control, if you turn on this config, the maximum number of request/s will be limited. # global max request number per second # default tenant-level max request number traffic: control: global-switch: false max-global-qps-rate: 300 tenant-switch: false default-tenant-qps-rate: 10 # customize-tenant-qps-rate: # eg. #tenant1: 10 #tenant2: 10 # Override by profile --- spring: config: activate: on-profile: mysql datasource: driver-class-name: com.mysql.jdbc.Driver url: "jdbc:mysql://192.168.3.240:4408/dolphinscheduler?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false" username: dolphins password: dolphins123 quartz: properties: org.quartz.jobStore.driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate ``` ### What you expected to happen fix the bug of api server ### How to reproduce The API Server disable the oauth2,but fails to start ### Anything else _No response_ ### Version 3.2.x ### Are you willing to submit PR? - [ ] Yes I am willing to submit a PR! ### Code of Conduct - [X] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@dolphinscheduler.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org