Ошибка создания bean-компонента с именем scopedTarget.userPlatform: область действия «user» не активна для текущего потока - PullRequest
0 голосов
/ 26 октября 2018

org.springframework.beans.factory.BeanCreationException: Ошибка создания бина с именем 'scopedTarget.userPlatform': область 'user' не активна для текущего потока; рассмотрите возможность определения прокси-объекта с заданной областью действия для этого компонента, если вы собираетесь ссылаться на него из одноэлементного объекта; Вложенное исключение - java.lang.IllegalStateException: ни в каком контексте! в org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:355) в org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:197) в org.springframework.aop.target.SimpleBeanTargetSource.getTarget (SimpleBeanTargetSource.java:35) в org.springframework.aop.framework.CglibAopProxy $ DynamicAdvisedInterceptor.getTarget (CglibAopProxy.java:705) в org.springframework.aop.framework.CglibAopProxy $ DynamicAdvisedInterceptor.intercept (CglibAopProxy.java:655) at com.cumulocity.sdk.client.PlatformImpl $$ EnhancerBySpringCGLIB $$ 998b9bde.close () в com.test.CleanAssignedSoftwareService.CreateSoftwareAssignmentOperations (CleanAssignedSoftwareService.java:235) на com.test.ScheduledTask.reportCurrentTime (ScheduledTask.java:33) at sun.reflect.GeneratedMethodAccessor69.invoke (неизвестный источник) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) в java.lang.reflect.Method.invoke (Method.java:498) в org.springframework.scheduling.support.ScheduledMethodRunnable.run (ScheduledMethodRunnable.java:65) в org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run (DelegatingErrorHandlingRunnable.java:54) в java.util.concurrent.Executors $ RunnableAdapter.call (Executors.java:511) в java.util.concurrent.FutureTask.runAndReset (FutureTask.java:308) в java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.access $ 301 (ScheduledThreadPoolExecutor.java:180) в java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:294) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624) на java.lang.Thread.run (Thread.java:748) Вызывается: java.lang.IllegalStateException: Не в любом контексте! в com.cumulocity.microservice.context.ContextServiceImpl.getContext (ContextServiceImpl.java:41) в com.cumulocity.microservice.context.annotation.EnableContextSupportConfiguration $ 2.getContextId (EnableContextSupportConfiguration.java:45) в com.cumulocity.microservice.context.scope.BaseScope.doGetSynchronized (BaseScope.java:47) на com.cumulocity.microservice.context.scope.BaseScope.get (BaseScope.java:39) в org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:340) ... 19 общих кадров пропущено

1 Ответ

0 голосов
/ 05 ноября 2018

При запуске некоторого кода с аннотацией @Scheduled вам необходимо определить контекст. В противном случае вы получите это исключение, поскольку поток, использующий API cumulocity, не находится ни в каком контексте.

например. для всех подписавшихся арендаторов:

private final MicroserviceSubscriptionsService subscriptions;

@Scheduled(fixedDelay = 5 * 60 * 1000)
private void checkForAgentRepresentation() {
    for (final MicroserviceCredentials mc : subscriptions.getAll()) {
        final String tenant = mc.getTenant();
        subscriptions.runForTenant(tenant, () -> {
            //doSomething like
            inventoryApi.get(...);
        });
    }
}
...