【发布时间】:2013-05-31 12:05:10
【问题描述】:
我已经使用 Eclipse、Maven、嵌入式 H2 DB 和 Jetty maven 插件设置了一个简单的 Web 应用程序。
一切正常
mvn jetty:run
所有依赖项都已解决,webapp 运行没有问题。
更改源文件后,码头将重新加载(我尝试手动重新加载,结果相同)并且每次都抛出此错误。并且始终在同一个服务类上(在第一次启动时已成功自动装配)。
org.springframework.beans.factory.NoSuchBeanDefinitionException: 否 符合条件的 bean 类型 [li.grillplaetz.service.directory.DirectoryService] 找到 依赖项:预计至少有 1 个符合自动装配条件的 bean 这种依赖的候选人。依赖注解:{} at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:986) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:856) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:768) 在 org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:795) 在 org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:723) 在 org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:196)
这里可能有什么问题?我认为如果我的代码中遗漏了一些东西,它不应该从一开始就起作用。但这仅在码头重新加载后发生。当我杀死码头并再次运行它时,一切都很好。
我在我的 pom.xml 中配置了这样的码头,我正在使用 spring 3.2。
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<configuration>
<reload>manual</reload>
<!-- <scanIntervalSeconds>10</scanIntervalSeconds>-->
</configuration>
</plugin>
感谢任何见解。 谢谢 马克
【问题讨论】:
-
您是否在您的应用程序中实现了
DirectoryService?我似乎 Spring 没有找到在启动时运行的实现。 -
我当然做到了,正如我所说,第一次启动后一切正常。也没有歧义。扫描包中只有一种实现。它最初是被发现并连接的,但不是在码头重新加载之后。
-
你使用
@Autowired和@Qualifier注解了吗? -
感谢您的回复。只有
@Autowired。据我了解,@Qualifier仅在存在多个候选人时才需要。 -
哦,好的!我在想也许不止一个候选人可以自动装配 =)
标签: java spring maven web-applications jetty