Я пытаюсь настроить фабрику соединений rabbitmq в своем классе. Хотите прочитать свойство, определенное в файле application.properties, используя аннотацию @Value. Тем не менее, конфигурация bean-компонента неверна. Я не могу этого понять.
Вот код:
@Controller
@Configuration
@RequestMapping("/unittestdata")
@Component
@PropertySource("classpath:application.properties")
public class UnitAmqpRestController {
@Value("${spring.rabbitmq.port}")
public static int mqPort;
public UnitAmqpRestController() {
}
private static final Logger logger = LoggerFactory.getLogger(UnitAmqpRestController.class);
private static RabbitTemplate rabbitTemplate;
private String replyQueueName;
private static Connection connection;
private static Channel channel;
private String requestQueueName = "rpc_queue_unit";
public UnitAmqpRestController(RabbitTemplate rabbitTemplate, String replyQueueName, Connection connection, Channel channel, String requestQueueName) {
this.rabbitTemplate = rabbitTemplate;
this.replyQueueName = replyQueueName;
this.connection = connection;
this.channel = channel;
this.replyQueueName = requestQueueName;
}
@PostConstruct
public static void main() throws Exception {
rabbitTemplate.setReplyTimeout(15_000L);
ConnectionFactory factory = new ConnectionFactory();
factory.setHost(getHostProperty());
factory.setPort(mqPort);
connection = factory.newConnection();
channel = connection.createChannel();
}
public static String getHostProperty() {
Properties properties = new Properties();
try {
File file = ResourceUtils.getFile("classpath:application.properties");
InputStream in = new FileInputStream(file);
properties.load(in);
} catch (IOException e) {
}
return properties.getProperty("spring.rabbitmq.host");
}
вот ошибка:
2019-06-18 10: 58: 02.642 ИНФОРМАЦИЯ 29037 --- [главная]
o.apache.catalina.core.StandardService: Остановка службы [Tomcat]
2019-06-18 10: 58: 02.661 ИНФОРМАЦИЯ 29037 --- [главная]
utoConfigurationReportLoggingInitializer:
Ошибка запуска ApplicationContext. Для отображения автоконфигурации
отчет перезапустите ваше приложение с включенной отладкой. 2019-06-18
10: 58: 02.667 ОШИБКА 29037 --- [главная]
o.s.boot.SpringApplication: сбой запуска приложения
org.springframework.beans.factory.BeanCreationException: ошибка
создание бина с именем 'unitAmqpRestController': вызов init
метод не удался; вложенным исключением является java.lang.NullPointerException
в org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization (InitDestroyAnnotationBeanPostProcessor.java:137)
~ [! весна-бобы-4.3.14.RELEASE.jar /: 4.3.14.RELEASE]
в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization (AbstractAutowireCapableBeanFactory.java:409)
~ [! весна-бобы-4.3.14.RELEASE.jar /: 4.3.14.RELEASE]
в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean (AbstractAutowireCapableBeanFactory.java:1620)
~ [! весна-бобы-4.3.14.RELEASE.jar /: 4.3.14.RELEASE]
в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:555)
~ [! весна-бобы-4.3.14.RELEASE.jar /: 4.3.14.RELEASE]
в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:483)
~ [! весна-бобы-4.3.14.RELEASE.jar /: 4.3.14.RELEASE]
в org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject (AbstractBeanFactory.java:306)
~ [! весна-бобы-4.3.14.RELEASE.jar /: 4.3.14.RELEASE]
в org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:230)
~ [! весна-бобы-4.3.14.RELEASE.jar /: 4.3.14.RELEASE]
в org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:302)
~ [! весна-бобы-4.3.14.RELEASE.jar /: 4.3.14.RELEASE]
в org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:197)
~ [! весна-бобы-4.3.14.RELEASE.jar /: 4.3.14.RELEASE]
в org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons (DefaultListableBeanFactory.java:761)
~ [! весна-бобы-4.3.14.RELEASE.jar /: 4.3.14.RELEASE]
в org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization (AbstractApplicationContext.java:867)
~ [Весна-контекст-4.3.14.RELEASE.jar /: 4.3.14.RELEASE]
в org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:543)
~ [Весна-контекст-4.3.14.RELEASE.jar /: 4.3.14.RELEASE]
в org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh (EmbeddedWebApplicationContext.java:122)
~ [Весна-загрузки 1.5.10.RELEASE.jar /: 1.5.10.RELEASE]
в org.springframework.boot.SpringApplication.refresh (SpringApplication.java:693)
[Весна-загрузки 1.5.10.RELEASE.jar /: 1.5.10.RELEASE]
в org.springframework.boot.SpringApplication.refreshContext (SpringApplication.java:360)
[Весна-загрузки 1.5.10.RELEASE.jar /: 1.5.10.RELEASE]в org.springframework.boot.SpringApplication.run (SpringApplication.java:303) [spring-boot-1.5.10.RELEASE.jar! /: 1.5.10.RELEASE] в org.springframework.boot.SpringApplication.run (SpringApplication.java: 1118) [spring-boot-1.5.10.RELEASE.jar! /: 1.5.10.RELEASE] в org.springframework.boot.SpringApplication.run (SpringApplication.java:1107) [spring-boot-1.5.10.RELEASE.jar! /: 1.5.10.RELEASE] в com.infy.ci.unitamqpservice.UnitamqpserviceApplication.main (UnitamqpserviceApplication.java:10) [классы! /: 0.0.1-SNAPSHOT] в sun.reflect.NativeMethodAccessormpl.invoke0 (Собственный метод) ~ [na: 1.8.0_212] в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) ~ [na: 1.8.0_212] в sun.reflect.DelegatingMethodAccessorImpl.etj.jpg43) ~ [na: 1.8.0_212] в java.lang.reflect.Method.invoke (Method.java:498) ~ [na: 1.8.0_212] в org.springframework.boot.loader.MainMethodRunner.run (MainMethodRunner.java: 48) [unitamqpservice-0.0.1-SNAPSHOT.jar: 0.0.1-SNAPSHOT] в илиg.springframework.boot.loader.Launcher.launch (Launcher.java:87) [unitamqpservice-0.0.1-SNAPSHOT.jar: 0.0.1-SNAPSHOT] в org.springframework.boot.loader.Launcher.launch (Launcher.Java: 50) [unitamqpservice-0.0.1-SNAPSHOT.jar: 0.0.1-SNAPSHOT] в org.springframework.boot.loader.JarLauncher.main (JarLauncher.java:51) [unitamqpservice-0.0.1-SNAPSHOT.jar: 0.0.1-SNAPSHOT] Вызвано: java.lang.NullPointerException: null at com.infy.ci.unitamqpservice.UnitAmqpRestController.main (UnitAmqpRestController.java:69) ~ [классы! /: 0.0.1-SNAPSHOT] в ВС.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) ~ [na: 1.8.0_212] в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) ~ [na: 1.8.0_212] в sun.rempell.DelegatingMethodAccessorImpl.java:43) ~ [na: 1.8.0_212] в java.lang.reflect.Method.invoke (Method.java:498) ~ [na: 1.8.0_212] в org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor $ LifecycleElement.invoke (InitDestroyAnnotationBeanPostProcessor.java:366) ~ [spring-beans-4.3.14.RELEASE.jar! /: 4.3.14.RELEASE] по адресу org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor $ LifecycleMetadata.ostjnoeOntProcess.NoIgnOnEgnOnt () ~ [spring-beans-4.3.14.RELEASE.jar! /: 4.3.14.RELEASE] в org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization (InitDestroyAnnotationBeanPostProcessorjj) [springProcessor.jar]4.3.14.RELEASE.jar! /: 4.3.14.RELEASE] ... пропущено 26 общих фреймов
Не получается, есть ли проблема в конструкторе ИЛИ в методе main ??Я пропускаю что-то вроде конфигурации @Bean ??
Пожалуйста, предложите