TLDR
Получение ошибки Error creating bean with name...
при запуске встроенного Jetty в IntelliJ, но не при запуске того же кода вне Intellij - на автономном сервере Jetty.
Глубина
У нас есть веб-приложение, которое работает на пристани.
До недели go я мог чтобы запустить и использовать приложение со встроенной в Intellij Jetty.
Несколько дней go мой коллега обновил один из конструкторов bean-компонентов и добавил к нему новый bean-компонент, который он создал.
Таким образом, в zoowebappcontext.xml
он добавил новую запись в конструктор bean-компонента:
<bean id="animalsService" class="java.util.ArrayList">
<constructor-arg>
<list>
<ref bean="pets.catService" />
....
<ref bean="pets.dogService" /> <-- The new item
...
И в файле applicationContext.xml
он добавил новое определение bean-компонента, которое выглядит очень похоже на все остальные. бобы там:
<bean id="pets.dogService"
class="com.example.DogServiceImpl"
parent="...">
<property name="..." ref="..."/>
</bean>
Странно это так: если у меня mvn clean install
проект, есть новый zoo.war
, переместите его в папку Jetty's webapp
и запустите приложение как автономная Jetty , приложение запускается без ошибок.
Но, при запуске приложения во встроенной Jetty Intellij , приложение пытается запуститься и в конечном итоге дает сбой с этим ошибка:
org.springframework.beans.factory.BeanCreationException: Ошибка создания компонента с имя 'animalsService', определенное в ресурсе пути к классу [zoowebappContext.xml]: невозможно разрешить ссылку на bean-компонент pets.dogService при установке аргумента конструктора с ключом [14]; Вложенное исключение - org.springframework.beans.factory.NoSuchBeanDefinitionException: не определен bean-компонент с именем pets.dogSerice
Перемещение кода в коммит до вышеуказанного изменения, intellij может начинаться с нет проблем.