Как исправить «Ошибка создания bean-компонента с именем»

Мой сайт работает/работал нормально. Но я вынужден обновить ОС серверов, на которых он работает, потому что более новая версия программного обеспечения, которое мне нужно обновить, не будет работать на старой ОС. Итак, теперь я в аду зависимости.

Итак, на тестовом сервере я обновил ОС с Ubuntu 14.04 до 18.04.1. Я также был вынужден использовать более позднюю версию Java из:

echo $JAVA_HOME
/usr/lib/jvm/java-7-oracle

к

echo $JAVA_HOME
/usr/lib/jvm/java-11-openjdk-amd64/

И версия Tomcat с 7 по 8.

Немного повозившись (я начал это в январе, но только что смог вернуться к этому, поэтому я не могу вспомнить, что именно, хотя при необходимости могу поискать в истории подсказки), я могу собрать свое приложение ОК, но он терпит неудачу на последнем препятствии:

BUILD SUCCESSFUL Total time: 19 seconds Using CATALINA_BASE:
/var/lib/tomcat8 Using CATALINA_HOME: /usr/share/tomcat8 Using CATALINA_TMPDIR: /var/lib/tomcat8/temp Using JRE_HOME:
/usr/lib/jvm/java-11-openjdk-amd64/ Using CLASSPATH:
/usr/share/tomcat8/bin/bootstrap.jar:/usr/share/tomcat8/bin/tomcat-juli.jar Using CATALINA_PID: /root/catalina.pid Tomcat started. --2019-05-28 16:10:16-- http://localhost:8080/ Resolving localhost (localhost)... 127.0.0.1 Connecting to localhost (localhost)|127.0.0.1|:8080... connected. HTTP request sent, awaiting response... 404 2019-05-28 16:10:16 ERROR 404: (no description).

Дальнейшее расследование показывает:

less /var/log/tomcat8/catalina.out

2019-05-28 16:10:06.418 UTC [localhost-startStop-1] ERROR org.springframework.web.context.ContextLoader - Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'embedController' defined in ServletContext resource [/WEB-INF/playground-servlet.xml]: Cannot resolve reference to bean 'homeController' while settin g bean property 'homeController'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'homeController' defined in ServletContext resource [/WEB-INF/playground-servlet.xml]: Cannot re solve reference to bean 'execService' while setting bean property 'execService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'execService': Invocation of init method failed; nested exception is javax.ws.rs.ProcessingException: java.net.ConnectException: Connection refused (Connection refused) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:326) ~[spring-beans-3.2.8.RELEASE.jar:3.2.8.RELEASE]

Теперь должно быть совершенно ясно, что я не очень понимаю, что делаю. Я провел день, много гуглил и просматривал множество ответов Stack Overflow, но ничего не кажется актуальным.

Spring не может создать bean-компонент execService для вас, потому что, когда он пытается создать экземпляр объекта класса, он получает ConnectionRefusedException. Чтобы помочь вам решить эту проблему, нам нужно увидеть класс для bean-компонента «execService».

Sunchezz 28.05.2019 18:43

Начинается с public interface ExecService {. Я знаю, что такое класс интерфейса на другом языке, так что это поможет? Класс, который его реализует, имеет более 1800 строк кода. Очевидно, я нервничаю из-за публикации исходного кода. Думаю, я могу попробовать MCVE, но у меня так мало опыта, что создать его будет сложно.

Matthew Taylor 28.05.2019 18:53

честно говоря, я предполагаю, что ответ @jspcal - правильное направление. Обновление Spring до 5.x или понижение версии Java является минимальным требованием. после этого, если исключение все еще происходит, мы можем отгадать дальнейшие варианты;) :D

Sunchezz 28.05.2019 18:58

Это полная трассировка стека исключений?

Selaron 29.05.2019 09:08
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
4
704
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

эта ошибка исходит от Spring. Для поддержки Java 11 вам также необходимо обновить Spring до последней версии 5.x (в настоящее время 5.2.x).

Вы можете столкнуться с различными проблемами совместимости при обновлении старой среды до Java 11. Если вам не требуется обновление, вы можете оставить предыдущую версию. Java 8 все еще поддерживается.

Спасибо. Я расследую. Я не могу вспомнить, почему я выбрал 11.

Matthew Taylor 28.05.2019 18:51

Я перешел на Java 8. Я пошел на Spring 5.2.x, но у меня были всевозможные проблемы. Я смягчил его, перейдя на Spring 4.3.24, и получил одну проблему, которую я был доволен тем, что смог исправить. Теперь я вернулся к тому, с чего начал с той же ошибкой. Вероятно, лучше опубликовать новый вопрос. Спасибо за помощь.

Matthew Taylor 30.05.2019 18:16

Другие вопросы по теме