6.AsyncTask中的FutureTask和Callable

本文介绍了Java并发编程中Callable接口及Future接口的使用方法,并通过一个具体案例展示了如何结合FutureTask来实现异步任务并获取其返回值。

1.Callable接口

public interface Callable<V> {
    V call() throws Exception;
}

Callable接口只定义了一个函数,从接口的定义当中我们可以看出Callable接口是有返回值的。那么我们如何获取它的返回值呢,这就需要用到java设计好的的一个类FutureTask。

2.Future 接口

Future 接口主要提供了一下几个方法

    //取消线程的执行
    boolean cancel(boolean mayInterruptIfRunning);

   //判断是否停止执行
    boolean isCancelled();

   //判断线程是否执行完成
    boolean isDone();

    //获取返回值
    V get() throws InterruptedException, ExecutionException;

    V get(long timeout, TimeUnit unit)
        throws InterruptedException, ExecutionException, TimeoutException;

Future接口主要提供了以上几种方法,而FutureTask是它的唯一实现类。

3.案例

(1)首先实现Callable接口

    //异步任务
    static class Task implements Callable<Integer>{

        //返回异步任务的执行结果
        @Override
        public Integer call() throws Exception {
            int i = 0;
            for (; i < 10; i++) {
                try {
                    System.out.println(Thread.currentThread().getName() + "_"+i);
                    Thread.sleep(500);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }

            return i;
        }   
    }

(2)将异步任务当做参数传入到FutureTask中

Task work = new Task();
        FutureTask<Integer> future = new FutureTask<Integer>(work){
            //异步任务执行完成,回调
            @Override
            protected void done() {
                try {
                //任务完成调用get()方法就可以得到返回值。
                    System.out.println("done:"+get());
                } catch (InterruptedException e) {
                    e.printStackTrace();
                } catch (ExecutionException e) {
                    e.printStackTrace();
                }
            }
        };

    //放入线程池中执行。
        ExecutorService executor = Executors.newCachedThreadPool();
        executor.execute(future);

当然我们调用future的cancel()方法可以停止任务的执行。有兴趣的同学可以试一下。

2025-10-27 09:31:25.822 [main] INFO [][com.huawei.foundation.commons.config.ConfigUtils.219] Config resolver is com.huawei.foundation.commons.props.SystemEnvConfigResolver@2fc40856; com.huawei.cube.core.env.CubeEnvConfigResolver@5543d800; com.huawei.foundation.commons.config.DefaultConfigResolver@1e033801 2025-10-27 09:31:25.882 [main] INFO [][com.huawei.foundation.commons.config.ConfigUtils.42] Control param factory is not exist, and use default control param factory 2025-10-27 09:31:27.234 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationLoader.85] foundation component configuration is load for profiles [sit] 2025-10-27 09:31:27.261 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationUtils.55] All config item list [foundation-application, foundation-bootstrap, foundation, cube-app, hae-config, cube-rt-sgov, cube-rt-sso, commons-ops, console, cube-rt-web, cube-rt-security, cube-rt-cs, cube-rt-privilege, cube-privilege-program, cube-rt-http, cube-rt-discovery, cube-rt-health, cube-rt-mqs, cube-das, cube-asynctask, cube-excel, commons-boot] 2025-10-27 09:31:27.645 [main] ERROR [][com.huawei.foundation.commons.thread.ThreadUtils.94] fail to init ThreadUtils java.lang.reflect.InaccessibleObjectException: Unable to make field private java.util.concurrent.Callable java.util.concurrent.FutureTask.callable accessible: module java.base does not "opens java.util.concurrent" to unnamed module @2ac3d530 at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:391) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:367) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:315) at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:183) at java.base/java.lang.reflect.Field.setAccessible(Field.java:177) at org.springframework.util.ReflectionUtils.makeAccessible(ReflectionUtils.java:803) at com.huawei.foundation.commons.thread.ThreadUtils.<clinit>(ThreadUtils.java:88) at com.huawei.foundation.commons.tracing.reporting.IncidentTracingReporter.<clinit>(IncidentTracingReporter.java:40) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1160) at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:300) at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newConstructorAccessor(MethodHandleAccessorFactory.java:103) at java.base/jdk.internal.reflect.ReflectionFactory.newConstructorAccessor(ReflectionFactory.java:200) at java.base/java.lang.reflect.Constructor.acquireConstructorAccessor(Constructor.java:549) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:789) at java.base/java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:729) at java.base/java.util.ServiceLoader$3.next(ServiceLoader.java:1403) at com.huawei.foundation.commons.reporting.ReporterFactory.findReporter(ReporterFactory.java:30) at com.huawei.foundation.commons.incident.IncidentReporterFactory.init(IncidentReporterFactory.java:30) at com.huawei.foundation.commons.incident.Incident.init(Incident.java:144) at com.huawei.foundation.commons.tracing.AgentDynamicInjectInitializer.initialize(AgentDynamicInjectInitializer.java:34) at org.springframework.boot.SpringApplication.lambda$createBootstrapContext$1(SpringApplication.java:343) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.springframework.boot.SpringApplication.createBootstrapContext(SpringApplication.java:343) at org.springframework.boot.SpringApplication.run(SpringApplication.java:306) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1362) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1351) at com.huawei.cbgit.tree.MainApplication.main(MainApplication.java:34) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) 2025-10-27 09:31:27.683 [ExpiredBeanManager] WARN [][com.huawei.foundation.commons.beans.BeanMgntFactory.60] error in clean task, and exit! 2025-10-27 09:31:35.980 [main] INFO [][com.huawei.foundation.commons.config.ConfigUtils.219] Config resolver is com.huawei.foundation.commons.props.SystemEnvConfigResolver@4a10c019; com.huawei.cube.core.env.CubeEnvConfigResolver@37f627d0; com.huawei.foundation.commons.config.DefaultConfigResolver@2a7392a3 2025-10-27 09:31:36.043 [main] INFO [][com.huawei.foundation.commons.config.ConfigUtils.42] Control param factory is not exist, and use default control param factory 2025-10-27 09:31:37.278 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationLoader.85] foundation component configuration is load for profiles [sit] 2025-10-27 09:31:37.314 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationUtils.55] All config item list [foundation-application, foundation-bootstrap, foundation, cube-app, hae-config, cube-rt-sgov, cube-rt-sso, commons-ops, console, cube-rt-web, cube-rt-security, cube-rt-cs, cube-rt-privilege, cube-privilege-program, cube-rt-http, cube-rt-discovery, cube-rt-health, cube-rt-mqs, cube-das, cube-asynctask, cube-excel, commons-boot] 2025-10-27 09:31:37.667 [main] ERROR [][com.huawei.foundation.commons.thread.ThreadUtils.94] fail to init ThreadUtils java.lang.reflect.InaccessibleObjectException: Unable to make field private java.util.concurrent.Callable java.util.concurrent.FutureTask.callable accessible: module java.base does not "opens java.util.concurrent" to unnamed module @7b8fcdf2 at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:391) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:367) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:315) at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:183) at java.base/java.lang.reflect.Field.setAccessible(Field.java:177) at org.springframework.util.ReflectionUtils.makeAccessible(ReflectionUtils.java:803) at com.huawei.foundation.commons.thread.ThreadUtils.<clinit>(ThreadUtils.java:88) at com.huawei.foundation.commons.tracing.reporting.IncidentTracingReporter.<clinit>(IncidentTracingReporter.java:40) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1160) at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:300) at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newConstructorAccessor(MethodHandleAccessorFactory.java:103) at java.base/jdk.internal.reflect.ReflectionFactory.newConstructorAccessor(ReflectionFactory.java:200) at java.base/java.lang.reflect.Constructor.acquireConstructorAccessor(Constructor.java:549) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:789) at java.base/java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:729) at java.base/java.util.ServiceLoader$3.next(ServiceLoader.java:1403) at com.huawei.foundation.commons.reporting.ReporterFactory.findReporter(ReporterFactory.java:30) at com.huawei.foundation.commons.incident.IncidentReporterFactory.init(IncidentReporterFactory.java:30) at com.huawei.foundation.commons.incident.Incident.init(Incident.java:144) at com.huawei.foundation.commons.tracing.AgentDynamicInjectInitializer.initialize(AgentDynamicInjectInitializer.java:34) at org.springframework.boot.SpringApplication.lambda$createBootstrapContext$1(SpringApplication.java:343) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.springframework.boot.SpringApplication.createBootstrapContext(SpringApplication.java:343) at org.springframework.boot.SpringApplication.run(SpringApplication.java:306) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1362) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1351) at com.huawei.cbgit.tree.MainApplication.main(MainApplication.java:34) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) 2025-10-27 09:31:45.940 [main] INFO [][com.huawei.foundation.commons.config.ConfigUtils.219] Config resolver is com.huawei.foundation.commons.props.SystemEnvConfigResolver@4bcf08ae; com.huawei.cube.core.env.CubeEnvConfigResolver@626b9092; com.huawei.foundation.commons.config.DefaultConfigResolver@1ac2829e 2025-10-27 09:31:46.011 [main] INFO [][com.huawei.foundation.commons.config.ConfigUtils.42] Control param factory is not exist, and use default control param factory 2025-10-27 09:31:47.280 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationLoader.85] foundation component configuration is load for profiles [sit] 2025-10-27 09:31:47.326 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationUtils.55] All config item list [foundation-application, foundation-bootstrap, foundation, cube-app, hae-config, cube-rt-sgov, cube-rt-sso, commons-ops, console, cube-rt-web, cube-rt-security, cube-rt-cs, cube-rt-privilege, cube-privilege-program, cube-rt-http, cube-rt-discovery, cube-rt-health, cube-rt-mqs, cube-das, cube-asynctask, cube-excel, commons-boot] 2025-10-27 09:31:47.678 [main] ERROR [][com.huawei.foundation.commons.thread.ThreadUtils.94] fail to init ThreadUtils java.lang.reflect.InaccessibleObjectException: Unable to make field private java.util.concurrent.Callable java.util.concurrent.FutureTask.callable accessible: module java.base does not "opens java.util.concurrent" to unnamed module @1ef04613 at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:391) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:367) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:315) at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:183) at java.base/java.lang.reflect.Field.setAccessible(Field.java:177) at org.springframework.util.ReflectionUtils.makeAccessible(ReflectionUtils.java:803) at com.huawei.foundation.commons.thread.ThreadUtils.<clinit>(ThreadUtils.java:88) at com.huawei.foundation.commons.tracing.reporting.IncidentTracingReporter.<clinit>(IncidentTracingReporter.java:40) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1160) at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:300) at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newConstructorAccessor(MethodHandleAccessorFactory.java:103) at java.base/jdk.internal.reflect.ReflectionFactory.newConstructorAccessor(ReflectionFactory.java:200) at java.base/java.lang.reflect.Constructor.acquireConstructorAccessor(Constructor.java:549) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:789) at java.base/java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:729) at java.base/java.util.ServiceLoader$3.next(ServiceLoader.java:1403) at com.huawei.foundation.commons.reporting.ReporterFactory.findReporter(ReporterFactory.java:30) at com.huawei.foundation.commons.incident.IncidentReporterFactory.init(IncidentReporterFactory.java:30) at com.huawei.foundation.commons.incident.Incident.init(Incident.java:144) at com.huawei.foundation.commons.tracing.AgentDynamicInjectInitializer.initialize(AgentDynamicInjectInitializer.java:34) at org.springframework.boot.SpringApplication.lambda$createBootstrapContext$1(SpringApplication.java:343) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.springframework.boot.SpringApplication.createBootstrapContext(SpringApplication.java:343) at org.springframework.boot.SpringApplication.run(SpringApplication.java:306) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1362) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1351) at com.huawei.cbgit.tree.MainApplication.main(MainApplication.java:34) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) 2025-10-27 09:31:57.926 [main] INFO [][com.huawei.foundation.commons.config.ConfigUtils.219] Config resolver is com.huawei.foundation.commons.props.SystemEnvConfigResolver@2184962c; com.huawei.cube.core.env.CubeEnvConfigResolver@4d9bccfe; com.huawei.foundation.commons.config.DefaultConfigResolver@412440c1 2025-10-27 09:31:57.981 [main] INFO [][com.huawei.foundation.commons.config.ConfigUtils.42] Control param factory is not exist, and use default control param factory 2025-10-27 09:31:59.414 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationLoader.85] foundation component configuration is load for profiles [sit] 2025-10-27 09:31:59.440 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationUtils.55] All config item list [foundation-application, foundation-bootstrap, foundation, cube-app, hae-config, cube-rt-sgov, cube-rt-sso, commons-ops, console, cube-rt-web, cube-rt-security, cube-rt-cs, cube-rt-privilege, cube-privilege-program, cube-rt-http, cube-rt-discovery, cube-rt-health, cube-rt-mqs, cube-das, cube-asynctask, cube-excel, commons-boot] 2025-10-27 09:31:59.820 [main] ERROR [][com.huawei.foundation.commons.thread.ThreadUtils.94] fail to init ThreadUtils java.lang.reflect.InaccessibleObjectException: Unable to make field private java.util.concurrent.Callable java.util.concurrent.FutureTask.callable accessible: module java.base does not "opens java.util.concurrent" to unnamed module @2bd7f686 at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:391) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:367) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:315) at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:183) at java.base/java.lang.reflect.Field.setAccessible(Field.java:177) at org.springframework.util.ReflectionUtils.makeAccessible(ReflectionUtils.java:803) at com.huawei.foundation.commons.thread.ThreadUtils.<clinit>(ThreadUtils.java:88) at com.huawei.foundation.commons.tracing.reporting.IncidentTracingReporter.<clinit>(IncidentTracingReporter.java:40) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1160) at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:300) at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newConstructorAccessor(MethodHandleAccessorFactory.java:103) at java.base/jdk.internal.reflect.ReflectionFactory.newConstructorAccessor(ReflectionFactory.java:200) at java.base/java.lang.reflect.Constructor.acquireConstructorAccessor(Constructor.java:549) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:789) at java.base/java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:729) at java.base/java.util.ServiceLoader$3.next(ServiceLoader.java:1403) at com.huawei.foundation.commons.reporting.ReporterFactory.findReporter(ReporterFactory.java:30) at com.huawei.foundation.commons.incident.IncidentReporterFactory.init(IncidentReporterFactory.java:30) at com.huawei.foundation.commons.incident.Incident.init(Incident.java:144) at com.huawei.foundation.commons.tracing.AgentDynamicInjectInitializer.initialize(AgentDynamicInjectInitializer.java:34) at org.springframework.boot.SpringApplication.lambda$createBootstrapContext$1(SpringApplication.java:343) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.springframework.boot.SpringApplication.createBootstrapContext(SpringApplication.java:343) at org.springframework.boot.SpringApplication.run(SpringApplication.java:306) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1362) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1351) at com.huawei.cbgit.tree.MainApplication.main(MainApplication.java:34) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) 2025-10-27 09:32:10.353 [main] INFO [][com.huawei.foundation.commons.config.ConfigUtils.219] Config resolver is com.huawei.foundation.commons.props.SystemEnvConfigResolver@1e38e8b6; com.huawei.cube.core.env.CubeEnvConfigResolver@59bbf82e; com.huawei.foundation.commons.config.DefaultConfigResolver@75b3ef1a 2025-10-27 09:32:10.415 [main] INFO [][com.huawei.foundation.commons.config.ConfigUtils.42] Control param factory is not exist, and use default control param factory 2025-10-27 09:32:11.766 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationLoader.85] foundation component configuration is load for profiles [sit] 2025-10-27 09:32:11.807 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationUtils.55] All config item list [foundation-application, foundation-bootstrap, foundation, cube-app, hae-config, cube-rt-sgov, cube-rt-sso, commons-ops, console, cube-rt-web, cube-rt-security, cube-rt-cs, cube-rt-privilege, cube-privilege-program, cube-rt-http, cube-rt-discovery, cube-rt-health, cube-rt-mqs, cube-das, cube-asynctask, cube-excel, commons-boot] 2025-10-27 09:32:12.188 [main] ERROR [][com.huawei.foundation.commons.thread.ThreadUtils.94] fail to init ThreadUtils java.lang.reflect.InaccessibleObjectException: Unable to make field private java.util.concurrent.Callable java.util.concurrent.FutureTask.callable accessible: module java.base does not "opens java.util.concurrent" to unnamed module @e4ef4c0 at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:391) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:367) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:315) at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:183) at java.base/java.lang.reflect.Field.setAccessible(Field.java:177) at org.springframework.util.ReflectionUtils.makeAccessible(ReflectionUtils.java:803) at com.huawei.foundation.commons.thread.ThreadUtils.<clinit>(ThreadUtils.java:88) at com.huawei.foundation.commons.tracing.reporting.IncidentTracingReporter.<clinit>(IncidentTracingReporter.java:40) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1160) at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:300) at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newConstructorAccessor(MethodHandleAccessorFactory.java:103) at java.base/jdk.internal.reflect.ReflectionFactory.newConstructorAccessor(ReflectionFactory.java:200) at java.base/java.lang.reflect.Constructor.acquireConstructorAccessor(Constructor.java:549) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:789) at java.base/java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:729) at java.base/java.util.ServiceLoader$3.next(ServiceLoader.java:1403) at com.huawei.foundation.commons.reporting.ReporterFactory.findReporter(ReporterFactory.java:30) at com.huawei.foundation.commons.incident.IncidentReporterFactory.init(IncidentReporterFactory.java:30) at com.huawei.foundation.commons.incident.Incident.init(Incident.java:144) at com.huawei.foundation.commons.tracing.AgentDynamicInjectInitializer.initialize(AgentDynamicInjectInitializer.java:34) at org.springframework.boot.SpringApplication.lambda$createBootstrapContext$1(SpringApplication.java:343) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.springframework.boot.SpringApplication.createBootstrapContext(SpringApplication.java:343) at org.springframework.boot.SpringApplication.run(SpringApplication.java:306) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1362) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1351) at com.huawei.cbgit.tree.MainApplication.main(MainApplication.java:34) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) 2025-10-27 09:32:12.225 [ExpiredBeanManager] WARN [][com.huawei.foundation.commons.beans.BeanMgntFactory.60] error in clean task, and exit! 2025-10-27 09:32:24.142 [main] INFO [][com.huawei.foundation.commons.config.ConfigUtils.219] Config resolver is com.huawei.foundation.commons.props.SystemEnvConfigResolver@862624f; com.huawei.cube.core.env.CubeEnvConfigResolver@3aa8c337; com.huawei.foundation.commons.config.DefaultConfigResolver@78e7b83 2025-10-27 09:32:24.242 [main] INFO [][com.huawei.foundation.commons.config.ConfigUtils.42] Control param factory is not exist, and use default control param factory 2025-10-27 09:32:25.549 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationLoader.85] foundation component configuration is load for profiles [sit] 2025-10-27 09:32:25.573 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationUtils.55] All config item list [foundation-application, foundation-bootstrap, foundation, cube-app, hae-config, cube-rt-sgov, cube-rt-sso, commons-ops, console, cube-rt-web, cube-rt-security, cube-rt-cs, cube-rt-privilege, cube-privilege-program, cube-rt-http, cube-rt-discovery, cube-rt-health, cube-rt-mqs, cube-das, cube-asynctask, cube-excel, commons-boot] 2025-10-27 09:32:25.981 [main] ERROR [][com.huawei.foundation.commons.thread.ThreadUtils.94] fail to init ThreadUtils java.lang.reflect.InaccessibleObjectException: Unable to make field private java.util.concurrent.Callable java.util.concurrent.FutureTask.callable accessible: module java.base does not "opens java.util.concurrent" to unnamed module @5487a8f1 at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:391) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:367) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:315) at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:183) at java.base/java.lang.reflect.Field.setAccessible(Field.java:177) at org.springframework.util.ReflectionUtils.makeAccessible(ReflectionUtils.java:803) at com.huawei.foundation.commons.thread.ThreadUtils.<clinit>(ThreadUtils.java:88) at com.huawei.foundation.commons.tracing.reporting.IncidentTracingReporter.<clinit>(IncidentTracingReporter.java:40) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1160) at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:300) at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newConstructorAccessor(MethodHandleAccessorFactory.java:103) at java.base/jdk.internal.reflect.ReflectionFactory.newConstructorAccessor(ReflectionFactory.java:200) at java.base/java.lang.reflect.Constructor.acquireConstructorAccessor(Constructor.java:549) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:789) at java.base/java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:729) at java.base/java.util.ServiceLoader$3.next(ServiceLoader.java:1403) at com.huawei.foundation.commons.reporting.ReporterFactory.findReporter(ReporterFactory.java:30) at com.huawei.foundation.commons.incident.IncidentReporterFactory.init(IncidentReporterFactory.java:30) at com.huawei.foundation.commons.incident.Incident.init(Incident.java:144) at com.huawei.foundation.commons.tracing.AgentDynamicInjectInitializer.initialize(AgentDynamicInjectInitializer.java:34) at org.springframework.boot.SpringApplication.lambda$createBootstrapContext$1(SpringApplication.java:343) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.springframework.boot.SpringApplication.createBootstrapContext(SpringApplication.java:343) at org.springframework.boot.SpringApplication.run(SpringApplication.java:306) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1362) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1351) at com.huawei.cbgit.tree.MainApplication.main(MainApplication.java:34) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) 2025-10-27 09:32:26.024 [ExpiredBeanManager] WARN [][com.huawei.foundation.commons.beans.BeanMgntFactory.60] error in clean task, and exit! 2025-10-27 09:32:38.387 [main] INFO [][com.huawei.foundation.commons.config.ConfigUtils.219] Config resolver is com.huawei.foundation.commons.props.SystemEnvConfigResolver@2184962c; com.huawei.cube.core.env.CubeEnvConfigResolver@4d9bccfe; com.huawei.foundation.commons.config.DefaultConfigResolver@412440c1 2025-10-27 09:32:38.529 [main] INFO [][com.huawei.foundation.commons.config.ConfigUtils.42] Control param factory is not exist, and use default control param factory 2025-10-27 09:32:39.824 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationLoader.85] foundation component configuration is load for profiles [sit] 2025-10-27 09:32:39.849 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationUtils.55] All config item list [foundation-application, foundation-bootstrap, foundation, cube-app, hae-config, cube-rt-sgov, cube-rt-sso, commons-ops, console, cube-rt-web, cube-rt-security, cube-rt-cs, cube-rt-privilege, cube-privilege-program, cube-rt-http, cube-rt-discovery, cube-rt-health, cube-rt-mqs, cube-das, cube-asynctask, cube-excel, commons-boot] 2025-10-27 09:32:40.211 [main] ERROR [][com.huawei.foundation.commons.thread.ThreadUtils.94] fail to init ThreadUtils java.lang.reflect.InaccessibleObjectException: Unable to make field private java.util.concurrent.Callable java.util.concurrent.FutureTask.callable accessible: module java.base does not "opens java.util.concurrent" to unnamed module @2bd7f686 at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:391) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:367) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:315) at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:183) at java.base/java.lang.reflect.Field.setAccessible(Field.java:177) at org.springframework.util.ReflectionUtils.makeAccessible(ReflectionUtils.java:803) at com.huawei.foundation.commons.thread.ThreadUtils.<clinit>(ThreadUtils.java:88) at com.huawei.foundation.commons.tracing.reporting.IncidentTracingReporter.<clinit>(IncidentTracingReporter.java:40) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1160) at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:300) at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newConstructorAccessor(MethodHandleAccessorFactory.java:103) at java.base/jdk.internal.reflect.ReflectionFactory.newConstructorAccessor(ReflectionFactory.java:200) at java.base/java.lang.reflect.Constructor.acquireConstructorAccessor(Constructor.java:549) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:789) at java.base/java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:729) at java.base/java.util.ServiceLoader$3.next(ServiceLoader.java:1403) at com.huawei.foundation.commons.reporting.ReporterFactory.findReporter(ReporterFactory.java:30) at com.huawei.foundation.commons.incident.IncidentReporterFactory.init(IncidentReporterFactory.java:30) at com.huawei.foundation.commons.incident.Incident.init(Incident.java:144) at com.huawei.foundation.commons.tracing.AgentDynamicInjectInitializer.initialize(AgentDynamicInjectInitializer.java:34) at org.springframework.boot.SpringApplication.lambda$createBootstrapContext$1(SpringApplication.java:343) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.springframework.boot.SpringApplication.createBootstrapContext(SpringApplication.java:343) at org.springframework.boot.SpringApplication.run(SpringApplication.java:306) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1362) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1351) at com.huawei.cbgit.tree.MainApplication.main(MainApplication.java:34) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) 为什么报错
最新发布
10-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值