【问题标题】:Spring, Jetty Maven Plugin: No qualifying bean error only after jetty reloadSpring,Jetty Maven Plugin:仅在码头重新加载后没有合格的bean错误
【发布时间】: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


【解决方案1】:

事实证明,这是 Jetty 9 中的一个已知错误。

它应该在最新版本 9.0.4 中得到修复,目前似乎在 maven repos 上不可用。 所以,我的解决方法是暂时恢复到 Jetty 8,它没有这个 bug。

【讨论】:

    猜你喜欢
    • 2013-06-27
    • 2016-03-23
    • 2015-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多