TLDR
在独立Jetty服务器中在IntelliJ中运行嵌入式Jetty时,但在Intellij之外运行相同代码时,不会出现Error creating bean with name...
错误。
深度
我们有一个在Jetty中运行的Web应用程序。
直到一周前,我才能够通过Intellij的嵌入式Jetty启动和使用该应用程序。
几天前,我的一位同事更新了其中一个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非常相似:
<bean id="pets.dogService"
class="com.example.DogServiceImpl"
parent="...">
<property name="..." ref="..."/>
</bean>
这很奇怪:如果我mvn clean install
该项目,有一个新的zoo.war
,将其移动到Jetty的webapp
文件夹,然后以stand-alone Jetty的身份启动该应用程序,则该应用程序将启动没有错误。
但是,当在intellij的内部运行该应用程序时嵌入式Jetty,该应用程序尝试启动并最终因以下错误而失败:
将代码移至上述更改之前的提交位置,intellij可以毫无问题地启动。
intelliJ
某些东西滞留在系统中,就像问题刚开始一样,它只是在某个时候消失了。一些可能有助于“重置” IntelliJ的东西(它们都没有通过自己解决问题):