类路径问题

时间:2011-09-10 08:15:20

标签: java spring

在我的应用程序中,有三个单独的项目用于任务细节:

  1. 服务层和dao层的一个Java项目(使用Spring DI) - business.jar
  2. WS客户端的一个Java项目 - WSClient.jar
  3. 使用Spring MVC的Web项目 - MyApp.war
  4. 现在我的问题是如何将所有项目绑定在一起,因为Web应用程序必须从business.jar获取服务和DAO的依赖关系,并且服务必须从调用Web服务的WSClient.jar获取依赖关系。我必须使用Spring的类路径扫描实用程序来自动化所有这三个项目中的服务dao和控制器组件。

    但是因为服务层不在类路径中而得到错误:

    factory.NoSuchBeanDefinitionException: No matching bean of type
    [com.amex.merchant.site.pop.service.POPRenderService] found for dependency:
    expected at least 1 bean which qualifies as autowire candidate for this
    dependency. Dependency annotations:
    {@org.springframework.beans.factory.annotation.Autowired(required=true),
    @org.springframework.beans.factory.annotation.Qualifier(value=pOPRenderService)}
    

    请建议如何进一步

1 个答案:

答案 0 :(得分:0)

POJO服务层不应该对Web服务客户端有任何依赖性。也不应该依赖于具有POJO服务的Web服务客户端。 POJO服务需要包含“合同优先”Web服务。听起来你对我做错了什么。

话虽如此,您需要从这些项目中创建JAR,并将它们作为依赖项添加到需要它们的其他项目中。或者,您可以在项目之间在IDE中创建依赖项,并一次编译它们。那不是春天的事;这取决于你的IDE。

至于你当前的问题,请确保你的Spring配置中包含<context:component-scan> XML。看起来Spring找不到你的pOPRenderService bean。如果这是一个依赖项,它可能是一个CLASSPATH问题。 Spring和类加载器都不能在其中找到包含该.class文件的JAR来解决依赖关系。