当前位置: 首页 > 知识库问答 >
问题:

找不到用于内省工厂方法的类文件:java。util。同时发生的线程池执行器。丢弃策略

汤兴生
2023-03-14

任何人,请帮我缩短。在Jboss上部署我的war文件时,它显示以下错误。我坚持要找出原因。

[o.s.c.annotation.ConfigurationClassUtils]:找不到用于反省工厂方法的类文件:java.util.concurrent.ThreadPoolExecator。Discard策略java.io.FileNotFoundExc0019:类路径资源[java/util/con当前/ThreadPoolExecator/DiscardPolicy.class]无法打开,因为它不存在于org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:158 ) ~[org.springframework.core-3.1.0。发布. jar!/: 3.1.0.发布]在org.springframework.core.type.classreading.SimpleMetadataReader。SimpleMetadataReader.java:45)~[org.springframework.core-3.1.0。发布. jar!/: 3.1.0.RELEASE]在org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:80)~[org.springframework.core-3.1.0。发布. jar!/: 3.1.0.RELEASE]org.springframework.core.type.classreading.CachingMetadataReaderFactory.getMetadataReader(CachingMetadataReaderFactory.java:101)~[org.springframework.core-3.1.0。发布. jar!/: 3.1.0.RELEASE]在org.springframework.core.type.classreading.SimpleMetadataReaderFactory. getMetadataReader(SimpleMetadataReaderFactory. java: 76)~[org. springframework. core-3.1.0。发布. jar!/: 3.1.0.发布]在org. springframework.上下文.注释。ConfigurationClassUtils. check ConfigurationClassCandidate(ConfigurationClassUtils. java: 69)~[org. springframework. extage-3.1.0.发布. jar!/: 3.1.0.发布]在org. springframework.上下文.注释。ConfigurationClassPostProcessor. ProcConfigBean定义(ConfigurationClassPostProcessor. java: 216)[org. springframework. encent-3.1.0.发布. jar!/: 3.1.0.发布]在org. springframework.上下文.注释。ConfigurationClassPostProcor. postProcessBean定义注册表(ConfigurationClassPostProcessor. java: 178)[org. springframework. encent-3.1.0.发布. jar!/: 3.1.0.发布]在org. springframework. background. support。AbstractApplication ationContext-3.1.0.发布. jar!/: 3.1.0.发布]在org. springframework. background. support。刷新(AbstractApplication ationContext-3.1.0. java: 446)[org. springframework. extage-3.1.0.发布. jar!/: 3.1.0.发布]在org. springframework. web. Contexts。ContextLoader. configureAndReFresWebApplication ationContext(ContextLoader. java: 384)[org. springframework. web-3.1.0.发布. jar!/: 3.1.0.发布]在org. springframework. web. Contexts。ContextLoader. initWebApplication ationContext(ContextLoader. java: 283)[org. springframework. web-3.1.0.发布. jar!/: 3.1.0.发布]在org. springframework. web. Contexts。ContextLoaderLister. Context初始化(ContextLoaderLister. java: 111)[org. springframework. web-3.1.0.发布. jar!/: 3.1.0.发布]在org. apache. catalina. core。[jbosSweb-7.4.8.最终红帽4. jar!/: 7.4.8.final-redhat-4]at org. apache. catalina. core.[jbosSweb-7.4.8.最终红帽4. jar!/: 7.4.8.final-redhat-4]at org. jboss. as. web.部署。WebDeploymentService. doStart(WebDeploymentService. java: 161)[jboss as-web-7.4.0.最终红帽19. jar!/: 7.4.0。final-redhat-19]at org. jboss. as. web.部署。$(WebDeploymentService. java: 59)[jboss as-web-7.4.0.最终红帽19. jar!/: 7.4.0。final-redhat-19]at org. jboss. as. web.部署。WebDeploymentService1美元. run(WebDeploymentService. java: 94)[jboss as-web-7.4.0.最终红帽19. jar!/: 7.4.0。finel-redhat-19]at java. util.执行者$RunnableAdapter. call(Executors. java: 511)[na: 1.8。0_74]在java. utilt.并发。FutureTasks. run(FutureTasks. java: 266)[na: 1.8.0_74]at java. util.同时。ThreadPoolExecutor. runWorker(ThreadPoolExecutor. java: 1142)[na: 1.8.0_74]at java. util. con当前。线程池执行器$Worker. run(ThreadPoolExecutor. java: 617)[na: 1.8.0_74]在java. lang。线程. run(Thread. java: 745)[na: 1.8.0_74]at org. jboss.JBossThread. run(JBossThread. java: 122)[jboss-threads-2.1.1.finel-redhat-1. jar!/: 2.1.1.最终红帽-1]

我找到的解决办法

我配置的SpringBeanRef注入的问题。

之前

<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> 
                    <property name="corePoolSize" value="100" /> 
                    <property name="maxPoolSize" value="50" /> 
                    <property name="queueCapacity" value="150" /> 
                    <property name="rejectedExecutionHandler" ref="discardPolicy" /> 
</bean> 
<bean id="discardPolicy" class="java.util.concurrent.ThreadPoolExecutor.DiscardPolicy"/>

修改(已解决)

<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> 
            <property name="corePoolSize" value="100" /> 
            <property name="maxPoolSize" value="50" /> 
            <property name="queueCapacity" value="150" /> 
            <property name="rejectedExecutionHandler"> 
                <bean class="java.util.concurrent.ThreadPoolExecutor.DiscardPolicy"/> 
            </property>
</bean> 

共有1个答案

罗飞宇
2023-03-14

配置的SpringBeanRef注入的问题。

<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> 
            <property name="corePoolSize" value="100" /> 
            <property name="maxPoolSize" value="50" /> 
            <property name="queueCapacity" value="150" /> 
            <property name="rejectedExecutionHandler"> 
                <bean class="java.util.concurrent.ThreadPoolExecutor.DiscardPolicy"/> 
            </property>
</bean>
 类似资料:
  • 我使用线程池执行器,将其替换为旧版线程。 我创建了如下执行器: 这里的核心大小是maxpoolsize/5。我已经在应用程序启动时预先启动了所有核心线程,大约160个线程。 在传统设计中,我们创建并启动了大约670个线程。 但关键是,即使在使用Executor并创建和替换遗留设计之后,我们也不会得到更好的结果。 对于结果内存管理,我们使用Top命令来查看内存使用情况。对于时间,我们将System.

  • 我确信这两个列表都不是空的,并且正在调用,但是没有调用order execution run方法....

  • 我正在使用线程池执行器更改遗留设计。详情如下:- 遗留:-对于遗留设计,在应用程序启动时创建600个线程。和放置在各种池中,然后在需要时提取这些池,并将任务分配给相应的线程。 新:-在新设计中,我将线程池替换为执行器服务 我观察到的是,对于Executor,在启动时不会创建线程。它们是在从客户端激发请求时创建的。因此,与前一个线程相比,在内存中创建的线程要少得多。 但我的问题是,这样做是否正确,因

  • 主要内容:1 内置线程池,1.1 newFixedThreadPool,1.2 newCachedThreadPool,1.3 newScheduledThreadPool,1.4 newSignalThreadExecutor,2 默认线程工厂,3 Runnable转换为Callable,4 总结详细介绍了Executors线程池工具类的使用,以及四大内置线程池。 Executors可以看作一个工具类,里面提供了好多静态方法,这些方法根据用户选择返回不同的内置线程池实例,或者返回线程工厂,或者

  • Java SE6文档中的ThreadPoolExecutor类具有以下方法: 返回正在积极执行任务的线程的大致数目。 这里近似和积极执行是什么意思? 在调用之前、期间和之后,是否保证 null 我已经研究了线程池执行器监视需求,以及如何在java中判断线程池中是否有可用的线程,但它们没有回答我的查询。

  • 我正在开发一个基于quarkus 2.1.1的comandline应用程序。最终的当我运行mvnw测试时,我得到ClassNotFoundException:io。内蒂。util。同时发生的FastThreadLocal和quarkus不会启动。 pom。xml依赖项包括: 看起来它需要额外的依赖项。我将非常感谢您的帮助。