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

Reply via email to