MongodbMessageSource в интеграции Spring выдает ошибку без beanFactory

Это мой фрагмент кода

@Bean
@ServiceActivator(inputChannel = "topicChannel", outputChannel="responseChannel")
public Employee getEmpDetails() throws Exception {
      Expression query = new LiteralExpression("{'name' : '*****'}");
      MongoDbMessageSource source = new MongoDbMessageSource(mongoDbFactory(), query);
      source.setEntityClass(Employee.class);
      source.afterPropertiesSet();
      List<Employee> resluts =((List<Employee>)source.receive().getPayload());
      return resluts.get(0);
    }

Ниже приведена ошибка

Вы также должны определить

@Bean
@ServiceActivator(inputChannel = "topicChannel", outputChannel="responseChannel")
public Employee getEmpDetails() throws Exception {
      Expression query = new LiteralExpression("{'name' : '*****'}");
      MongoDbMessageSource source = new MongoDbMessageSource(mongoDbFactory(), query);
      source.setEntityClass(Employee.class);
      source.afterPropertiesSet();
      List<Employee> resluts =((List<Employee>)source.receive().getPayload());
      return resluts.get(0);
    }
как _2_, чтобы он правильно инициализировался фреймворком; вызова _3_ недостаточно.


person Eswar Goud    schedule 02.09.2015    source источник


Ответы (1)


Кроме того, когда @ServiceActivator является @Bean, тип bean-компонента должен быть MessageHandler. Для метода POJO @ServiceActivator используйте @MessageEndoint.

Спасибо, Гэри, за ответ. Второй пункт немного сбивает с толку новичка. Пожалуйста, объясните на каком-нибудь примере.

person Gary Russell    schedule 02.09.2015
comment
Прочтите документацию по аннотированным конечным точкам и вернитесь если у вас есть конкретные вопросы. - person Eswar Goud; 02.09.2015
comment
Теперь я могу получать результаты из БД, метод показывает ошибку, поскольку обнаружен неоднозначный тип параметра [класс java.lang.Void] для сопоставления метода. Фрагмент кода представляет собой ссылку - person Gary Russell; 03.09.2015
comment
Вы должны использовать bean-компонент _1_ для _2_. См. Первый пример здесь. - person Eswar Goud; 03.09.2015
comment
java.lang. .springframework.integration.context.IntegrationObjectSupport.afterPropertiesSet (IntegrationObjectSupport.java:150) по адресу com.gap.si.configuratoin.MongoDBConfiguration.getEmpDetails (MongoDBConfiguration.figuration.getEmpDetails (MongoDBConfiguration.java:48) $ 8e22c38.CGLIB $ getEmpDetails $ 3 () по адресу com.gap.si.configuratoin.MongoDBConfiguration $$ EnhancerBySpringCGLIB $$ 8e22c38 $$ FastClassBySpringCGLIB $$ 99782c25.invoke () по адресу org.proxyu. java: 228) в org.springframework.context.annotation.ConfigurationClassEnhancer $ BeanMethodInterceptor.intercept (ConfigurationClassEnha ncer.java:309) в com.gap.si.configuratoin.MongoDBConfiguration $$ EnhancerBySpringCGLIB $$ 8e22c38.getEmpDetails () в sun.reflect.NativeMethodAccessorImpl.invoke0 (Собственный метод) в sun.reflectative.Aplus : 62) на sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) на java.lang.reflect.Method.invoke (Method.java:483) в org.springframework.beans.factory.support.SimratepleInvoke SimpleInstantiationStrategy.java:162) по адресу org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod (ConstructorResolver.java:588) в org.springframework.beans.factoryActory.AboutAbjectAbjectAbjectAbjectAbjectAbject .springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance (AbstractAu towireCapableBeanFactory.java:1014) при org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:504) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:476) в орг .springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject (AbstractBeanFactory.java:303) в org.springframework.beans.factory.support. DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:230) по адресу org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:299) по адресу org.BeanFactory.java:299) 194) при org.springframework.integration.config.annotation.AbstractMethodAnnotationPostProcessor.resolveTargetBeanFromMethodWithBeanAnnotation (AbstractMethodAnnotationPostProcessor.java:362) в org.springframework.integration.config.annotation.ServiceActivatorAnnotationPostProcessor.createHandler (ServiceActivatorAnnotationPostProcessor.java:54) в org.springframework.integration .config.annotation.AbstractMethodAnnotationPostProcessor.postProcess (AbstractMethodAnnotationPostProcessor.java:117) в org.springframework.integration.config.annotation.MessagingAnnotationPostProcessor $ 1.doWith (MessagingAnnotationPostProcessor $ 1.doWith) или MessagingAnnotationPostProcessor $ 1.doWith. ngframework.util.ReflectionUtils.doWithMethods (ReflectionUtils.java:495) в org.springframework.util.ReflectionUtils.doWithMethods (ReflectionUtils.java:502) в org.springframework.integration.confessaging.Annotation.Procession.ProcessionPosting.AnnotationProcession.Processial.Processial.Procession.Processing.Message.Процесс 131) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization (AbstractAutowireCapableBeanFactory.java:422) при org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean (AbstractAutowireCapableBeanFactory.java:1579) в org.springframework.beans .factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (Абстрактная actory.support.AbstractBeanFactory $ 1.getObject (AbstractBeanFactory.java:303) по адресу org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:230) по адресу org. (AbstractBeanFactory.java:299) на org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:194) на org.springframework.beans.factory.support. DefaultListableBeanFactory.preInstantiateSingletons (DefaultListableBeanFactory.java:755) в org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization (AbstractApplicationContext.finishBeanFactoryInitialization (AbstractApplicationContext. .springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh (EmbeddedWebApplicationContext.java:118) в org.springframework.boot.SpringApplication.refresh (SpringApplication.java:686) в org.springframe.Application (SpringApplication.Application.boot. : 320) в org.springframework.boot.SpringApplication.run (SpringApplication.java:957) в org.springframework.boot.SpringApplication.run (SpringApplication.java:946) в com.gap.si.configuratoin.Application.main ( Application.java:16) - person Gary Russell; 03.09.2015