Skip to content

[BUG]: ClassCastException: class java.util.concurrent.ThreadPerTaskExecutor cannot be cast to class java.util.concurrent.ThreadPoolExecutor #583

@chaoyoung

Description

@chaoyoung
  • 配置文件:
dynamictp:
  enabled: true
  enabledBanner: false
  enabledCollect: true                            # 是否开启监控指标采集
  collectorTypes:                                 # 监控数据采集器类型
    - MICROMETER
  logPath: logs                                   # 监控日志数据路径,默认 ${user.home}/logs,采集类型非jsonlog不用配置
  monitorInterval: 5                              # 监控时间间隔(报警判断、指标采集)
  dubboTp:                                        # dubbo 线程池配置
    - threadPoolName: dubboTp#50051               # 名称规则:dubboTp + "#" + 协议端口
      corePoolSize: 100
      maximumPoolSize: 200
      keepAliveTime: 60
  • 引入的依赖:
<dependency>
    <groupId>org.dromara.dynamictp</groupId>
    <artifactId>dynamic-tp-spring-cloud-starter-nacos</artifactId>
</dependency>
<dependency>
    <groupId>org.dromara.dynamictp</groupId>
    <artifactId>dynamic-tp-spring-boot-starter-adapter-dubbo</artifactId>
</dependency>
<dependency>
    <groupId>org.dromara.dynamictp</groupId>
    <artifactId>dynamic-tp-spring-boot-starter-adapter-rocketmq</artifactId>
</dependency>
  • 使用步骤:
@SpringBootApplication
@EnableDiscoveryClient
@MapperScan({"com.xxx.xxx.xxx.mapper"})
@EnableTransactionManagement
@EnableAspectJAutoProxy(exposeProxy = true)
@EnableDynamicTp
@EnableScheduling
@Slf4j
public class XXXApplication {

    public static void main(String[] args) {
        SpringApplication.run(XXXApplication.class, args);
    }
}
  • 报错信息:
2025-08-27 14:09:53.052 ERROR 7 --- [           main] d.d.a.dubbo.apache.ApacheDubboDtpAdapter:89 : DynamicTp adapter, dubboTp init failed.

java.lang.ClassCastException: class java.util.concurrent.ThreadPerTaskExecutor cannot be cast to class java.util.concurrent.ThreadPoolExecutor (java.util.concurrent.ThreadPerTaskExecutor and java.util.concurrent.ThreadPoolExecutor are in module java.base of loader 'bootstrap')
	at org.dromara.dynamictp.adapter.dubbo.apache.ApacheDubboDtpAdapter.getProxy(ApacheDubboDtpAdapter.java:176) ~[dynamic-tp-adapter-dubbo-1.2.2-x.jar:1.2.2-x]
	at org.dromara.dynamictp.adapter.dubbo.apache.ApacheDubboDtpAdapter.lambda$initialize$0(ApacheDubboDtpAdapter.java:135) ~[dynamic-tp-adapter-dubbo-1.2.2-x.jar:1.2.2-x]
	at java.base/java.util.concurrent.ConcurrentHashMap.forEach(ConcurrentHashMap.java:1603) ~[na:na]
	at org.dromara.dynamictp.adapter.dubbo.apache.ApacheDubboDtpAdapter.initialize(ApacheDubboDtpAdapter.java:134) ~[dynamic-tp-adapter-dubbo-1.2.2-x.jar:1.2.2-x]
	at org.dromara.dynamictp.adapter.dubbo.apache.ApacheDubboDtpAdapter.onApplicationEvent(ApacheDubboDtpAdapter.java:84) ~[dynamic-tp-adapter-dubbo-1.2.2-x.jar:1.2.2-x]
	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:185) ~[spring-context-6.2.10.jar:6.2.10]
	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:178) ~[spring-context-6.2.10.jar:6.2.10]
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:156) ~[spring-context-6.2.10.jar:6.2.10]
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:454) ~[spring-context-6.2.10.jar:6.2.10]
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:387) ~[spring-context-6.2.10.jar:6.2.10]
	at org.apache.dubbo.config.spring.ServiceBean.publishExportEvent(ServiceBean.java:149) ~[dubbo-3.3.5.jar:3.3.5]
	at org.apache.dubbo.config.spring.ServiceBean.exported(ServiceBean.java:141) ~[dubbo-3.3.5.jar:3.3.5]
	at org.apache.dubbo.config.ServiceConfig.doExport(ServiceConfig.java:558) ~[dubbo-3.3.5.jar:3.3.5]
	at org.apache.dubbo.config.ServiceConfig.export(ServiceConfig.java:343) ~[dubbo-3.3.5.jar:3.3.5]
	at org.apache.dubbo.config.deploy.DefaultModuleDeployer.exportServiceInternal(DefaultModuleDeployer.java:495) ~[dubbo-3.3.5.jar:3.3.5]
	at org.apache.dubbo.config.deploy.DefaultModuleDeployer.exportServices(DefaultModuleDeployer.java:442) ~[dubbo-3.3.5.jar:3.3.5]
	at org.apache.dubbo.config.deploy.DefaultModuleDeployer.startSync(DefaultModuleDeployer.java:177) ~[dubbo-3.3.5.jar:3.3.5]
	at org.apache.dubbo.config.deploy.DefaultModuleDeployer.start(DefaultModuleDeployer.java:159) ~[dubbo-3.3.5.jar:3.3.5]
	at org.apache.dubbo.config.spring.context.DubboDeployApplicationListener.onContextRefreshedEvent(DubboDeployApplicationListener.java:167) ~[dubbo-3.3.5.jar:3.3.5]
	at org.apache.dubbo.config.spring.context.DubboDeployApplicationListener.onApplicationEvent(DubboDeployApplicationListener.java:153) ~[dubbo-3.3.5.jar:3.3.5]
	at org.apache.dubbo.config.spring.context.DubboDeployApplicationListener.onApplicationEvent(DubboDeployApplicationListener.java:52) ~[dubbo-3.3.5.jar:3.3.5]
	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:185) ~[spring-context-6.2.10.jar:6.2.10]
	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:178) ~[spring-context-6.2.10.jar:6.2.10]
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:156) ~[spring-context-6.2.10.jar:6.2.10]
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:454) ~[spring-context-6.2.10.jar:6.2.10]
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:387) ~[spring-context-6.2.10.jar:6.2.10]
	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:1009) ~[spring-context-6.2.10.jar:6.2.10]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:630) ~[spring-context-6.2.10.jar:6.2.10]
	at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.refresh(ReactiveWebServerApplicationContext.java:66) ~[spring-boot-3.4.9.jar:3.4.9]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) ~[spring-boot-3.4.9.jar:3.4.9]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) ~[spring-boot-3.4.9.jar:3.4.9]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) ~[spring-boot-3.4.9.jar:3.4.9]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361) ~[spring-boot-3.4.9.jar:3.4.9]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350) ~[spring-boot-3.4.9.jar:3.4.9]
	at com.xxx.xxx.xxx.XXXApplication.main(XXXApplication.java:29) ~[application.jar:na]

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions