Inject Component in Rest Service

Здравствуйте, ошибка создания сервиса EntityCheckApiServiceBean при инжектировании бина компонента ContragentHandler
Сервис

@Service(EntityCheckApiService.NAME)
public class EntityCheckApiServiceBean implements EntityCheckApiService {

    @Inject
    private Logger log;
    @Inject
    private Messages messages;
    @Inject
    private DataManager dataManager;
//    @Inject
//    private MessageHandlerHelper messageHandlerHelper;
    @Inject
    private ContragentHandler contragentHandler;

    private Gson gson;

    protected String packageString = this.getClass().getPackage().toString();

    private static final String REGEX_NUMBER = "^\\d+$";
    private static final Pattern patternNumber = Pattern.compile(REGEX_NUMBER);

    protected static final String CONTRACT_BY_INN_KPP_OBDNSI_QUERY = "select e from *** e where e.inn = :inn and e.kpp = :kpp and e.codeObdnsi = :codeObdnsi";
    protected static final String INN = "inn";
    protected static final String KPP = "kpp";
    protected static final String CODE_OBDNSI = "codeObdnsi";

    @PostConstruct
    protected void init() {
//        contractHandler =  AppBeans.get("contractHandler");
        gson = new GsonBuilder()
                .excludeFieldsWithoutExposeAnnotation()
                .create();
    }

    public EntityServiceResult contragentCheck(String inn, String kpp, String codeObdnsi, String regNoContract) {
        EntityServiceResult entityServiceResult = new EntityServiceResult();

        if (inn == null || !patternNumber.matcher(inn).find() ||
                kpp == null || !patternNumber.matcher(kpp).find() ||
                codeObdnsi == null || !patternNumber.matcher(codeObdnsi).find()) {
            entityServiceResult.setSuccess(false);
            entityServiceResult.setErrorMessage(messages.getMessage(packageString, "EntityCheckApiServiceBean.inputDataError"));
            return entityServiceResult;
        }
        try {
            Contragent contragent = dataManager.load(Contragent.class)
                    .query(CONTRACT_BY_INN_KPP_OBDNSI_QUERY)
                    .parameter(INN, inn)
                    .parameter(KPP, kpp)
                    .parameter(CODE_OBDNSI, codeObdnsi)
                    .view("contragent-edit-view")
                    .one();

            String jsonMessage = gson.toJson(createContragentModel(contragent));
            entityServiceResult.setSuccess(true);
            entityServiceResult.setSuccessMessage(jsonMessage);
            return entityServiceResult;
        } catch (Exception e) {

            log.error(messages.getMessage(packageString, "EntityCheckApiServiceBean.contractLoadError"), e);
            entityServiceResult.setSuccess(false);
            entityServiceResult.setErrorMessage(e.getMessage());

            return entityServiceResult;
        }
    }

    public ContragentModel createContragentModel(Contragent contragent) {
        ContragentModel contragentModel = new ContragentModel();

        contragentModel.setContragentId(contragent.getContragentId());

        return contragentModel;
    }
}

сам компонент ContragentHandler

@Component
public class ContragentHandler extends AbstractMessageHandlerImpl {
    @Inject
    private MessageHandlerHelper messageHandlerHelper;
    @Inject
    private DataManager dataManager;
    @Inject
    private Metadata metadata;

    protected static final String CONTRAGENT_BY_CONTRAGENTID_QUERY =
            "select e from *** e where e.contragentId = :contragentId";
    protected static final String CONTRAGENT_ID = "contragentId";

    @PostConstruct
    protected void init() {
        ROOT_KEY_NAME = "CONTRAGENTS";
        JSON_ENTITY_NAME = "CONTRAGENT";
    }

    @Override
    protected void saveSingleEntity(JSONObject inputJson) {
        super.saveSingleEntity(inputJson);

        ContragentModel contragentModel = new Gson().fromJson(inputJson.toString(), ContragentModel.class);

        Contragent contragent = dataManager.load(Contragent.class)
                .query(CONTRAGENT_BY_CONTRAGENTID_QUERY)
                .parameter(CONTRAGENT_ID, contragentModel.getContragentId())
                .view("contragent-edit-view")
                .optional()
                .orElse(metadata.create(Contragent.class));

        contragent = mergeWithModel(contragent, contragentModel);
        dataManager.commit(contragent);
    }

    protected Contragent mergeWithModel(Contragent contragent, ContragentModel contragentModel) {
        messageHandlerHelper.setValueIfNotNull(contragent, "contragentId", contragentModel.getContragentId());
        messageHandlerHelper.setValueIfNotNull(contragent, "name", contragentModel.getName());
        messageHandlerHelper.setValueIfNotNull(contragent, "fullName", contragentModel.getFullName());
        messageHandlerHelper.setValueIfNotNull(contragent, "chief", contragentModel.getChief());
        messageHandlerHelper.setValueIfNotNull(contragent, "code", contragentModel.getCode());
        messageHandlerHelper.setValueIfNotNull(contragent, "country",
                messageHandlerHelper.getCountryByCountryId(contragentModel.getCountryId()));
        messageHandlerHelper.setValueIfNotNull(contragent, "codeObdnsi", contragentModel.getCodeObdnsi());
        messageHandlerHelper.setValueIfNotNull(contragent, "inn", contragentModel.getInn());
        messageHandlerHelper.setValueIfNotNull(contragent, "kpp", contragentModel.getKpp());
        messageHandlerHelper.setValueIfNotNull(contragent, "legalAddress", contragentModel.getLegalAddress());
        messageHandlerHelper.setValueIfNotNull(contragent, "okpo", contragentModel.getOkpo());
        messageHandlerHelper.setValueIfNotNull(contragent, "phone", contragentModel.getPhone());
        messageHandlerHelper.setValueIfNotNull(contragent, "postAddress", contragentModel.getPostAddress());
        messageHandlerHelper.setValueIfNotNull(contragent, "state", contragentModel.getState());
        messageHandlerHelper.setValueIfNotNull(contragent, "sgtransCode", contragentModel.getSgtransCode());
        messageHandlerHelper.setValueIfNotNull(contragent, "onStationCode", contragentModel.getOnStationCode());

        return contragent;
    }

    public ContragentModel createContragentModel(Contragent contragent) {
        ContragentModel contragentModel = new ContragentModel();

        contragentModel.setContragentId(contragent.getContragentId());

        return contragentModel;
    }
}

Предполагаю что нужно что-то настроить, но где пока не нашёл

Здравствуйте,

Какой текст ошибки-то?

И в каком модуле, в каком пакете находится класс ContragentHandler ?
Какова его роль, это какой-то эндпойнт для получения сообщений из очередей, или объект Spring MVC ?

10:16:36.084 INFO  c.h.c.c.s.CubaThreadPoolTaskScheduler   - Initializing ExecutorService 'restapi_scheduler'
10:16:38.050 WARN  c.h.c.c.s.CubaCoreApplicationContext    - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'gptlk_EntityCheckApiService': Unsatisfied dependency expressed through field 'contragentHandler'; nested exception is org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'contragentHandler' is expected to be of type 'com.***.gptlk.core.messaging.handler.ContragentHandler' but was actually of type 'com.sun.proxy.$Proxy346'
10:16:38.052 INFO  c.h.c.c.s.CubaThreadPoolTaskScheduler   - Shutting down ExecutorService 'restapi_scheduler'
10:16:38.052 INFO  c.h.c.c.s.CubaThreadPoolTaskScheduler   - Shutting down ExecutorService 'scheduler'
10:16:38.094 ERROR c.h.c.c.s.AbstractWebAppContextLoader   - Error initializing application
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'gptlk_EntityCheckApiService': Unsatisfied dependency expressed through field 'contragentHandler'; nested exception is org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'contragentHandler' is expected to be of type 'com.***.gptlk.core.messaging.handler.ContragentHandler' but was actually of type 'com.sun.proxy.$Proxy346'
	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:596) ~[spring-beans-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90) ~[spring-beans-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:374) ~[spring-beans-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1411) ~[spring-beans-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:592) ~[spring-beans-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515) ~[spring-beans-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) ~[spring-beans-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) ~[spring-beans-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:845) ~[spring-beans-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:877) ~[spring-context-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549) ~[spring-context-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:144) ~[spring-context-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:95) ~[spring-context-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at com.haulmont.cuba.core.sys.CubaClassPathXmlApplicationContext.<init>(CubaClassPathXmlApplicationContext.java:27) ~[cuba-global-7.1.2.jar:7.1.2]
	at com.haulmont.cuba.core.sys.CubaCoreApplicationContext.<init>(CubaCoreApplicationContext.java:26) ~[cuba-core-7.1.2.jar:7.1.2]
	at com.haulmont.cuba.core.sys.AppContextLoader.createApplicationContext(AppContextLoader.java:94) ~[cuba-core-7.1.2.jar:7.1.2]
	at com.haulmont.cuba.core.sys.AppContextLoader.createApplicationContext(AppContextLoader.java:39) ~[cuba-core-7.1.2.jar:7.1.2]
	at com.haulmont.cuba.core.sys.AbstractAppContextLoader.initAppContext(AbstractAppContextLoader.java:62) ~[cuba-global-7.1.2.jar:7.1.2]
	at com.haulmont.cuba.core.sys.AbstractWebAppContextLoader.contextInitialized(AbstractWebAppContextLoader.java:78) ~[cuba-global-7.1.2.jar:7.1.2]
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4682) [catalina.jar:9.0.19]
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5150) [catalina.jar:9.0.19]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.19]
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:713) [catalina.jar:9.0.19]
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690) [catalina.jar:9.0.19]
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:695) [catalina.jar:9.0.19]
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1133) [catalina.jar:9.0.19]
	at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1867) [catalina.jar:9.0.19]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_161]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_161]
	at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-util.jar:9.0.19]
	at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112) [na:1.8.0_161]
	at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1045) [catalina.jar:9.0.19]
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:429) [catalina.jar:9.0.19]
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1576) [catalina.jar:9.0.19]
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309) [catalina.jar:9.0.19]
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) [catalina.jar:9.0.19]
	at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423) [catalina.jar:9.0.19]
	at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366) [catalina.jar:9.0.19]
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:929) [catalina.jar:9.0.19]
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:831) [catalina.jar:9.0.19]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.19]
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1377) [catalina.jar:9.0.19]
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1367) [catalina.jar:9.0.19]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_161]
	at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-util.jar:9.0.19]
	at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134) [na:1.8.0_161]
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:902) [catalina.jar:9.0.19]
	at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262) [catalina.jar:9.0.19]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.19]
	at org.apache.catalina.core.StandardService.startInternal(StandardService.java:423) [catalina.jar:9.0.19]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.19]
	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:932) [catalina.jar:9.0.19]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.19]
	at org.apache.catalina.startup.Catalina.start(Catalina.java:633) [catalina.jar:9.0.19]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_161]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_161]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_161]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_161]
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:350) [bootstrap.jar:9.0.19]
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:492) [bootstrap.jar:9.0.19]
Caused by: org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'contragentHandler' is expected to be of type 'com.***.gptlk.core.messaging.handler.ContragentHandler' but was actually of type 'com.sun.proxy.$Proxy346'
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.checkBeanNotOfRequiredType(DefaultListableBeanFactory.java:1676) ~[spring-beans-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1654) ~[spring-beans-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1217) ~[spring-beans-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1171) ~[spring-beans-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at com.haulmont.cuba.core.sys.CubaDefaultListableBeanFactory.resolveDependency(CubaDefaultListableBeanFactory.java:59) ~[cuba-global-7.1.2.jar:7.1.2]
	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:593) ~[spring-beans-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	... 61 common frames omitted
июл 05, 2021 10:16:38 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: One or more listeners failed to start. Full details will be found in the appropriate container log file
июл 05, 2021 10:16:38 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/app-core] startup failed due to previous errors
июл 05, 2021 10:16:38 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory [D:\!work Ageev\elk\deploy\tomcat\webapps\app-core] has finished in [13 655] ms
июл 05, 2021 10:16:38 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8080"]
июл 05, 2021 10:16:38 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-nio-8009"]
июл 05, 2021 10:16:38 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in [34 460] milliseconds

ContragentHandler находится в модуле core
package com.***.gptlk.core.messaging.handler;

endpoint который разбирает json и или создает или обновляет сущности

Вы пытаетесь инжектировать бин по классу, но это невозможно, он лежит в контексте приложения обернут в прокси.
Вам нужно инжектировать бин по интерфейсу - вынесите публичные методы класса ContragentHandler, которые вам нужно вызывать, в отдельный интерфейс.

1 симпатия