2011-09-10 184 views
0

在我的應用程序有任務的細節3個單獨的項目:類路徑問題

  1. 一個Java項目服務層和DAO層(使用Spring DI) - business.jar
  2. 一個Java項目WS客戶 - WSClient.jar使用Spring MVC
  3. Web項目 - MyApp.war

現在我的問題是如何將所有的項目捆綁在一起,因爲Web應用程序有從business.jar獲得服務和DAO的依賴關係,服務必須從調用Web服務的角度獲得WSClient.jar的依賴關係。我必須使用Spring的classpath scan實用程序來自動連接所有這三個項目中的服務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)} 

請建議如何進行進一步

+0

請張貼您的Spring配置。 – joschi

+0

MSbusiness.jar中有一個名爲resources的文件夾,其中包含所有上下文xml,如用於服務和dao的msbusiness-context.xml。對於這個具體的例子,下面是在MSBusiness-context.xml中的服務條目 - 我已經把MSbusiness.jar放入/ WEB-INF/lib /和裏面/WEB-INF/applicationContext.xml導入msbusiness-context.xml - 第一個問題是它沒有加載ms-businessContext.xml 。 – user937967

+0

請在您的問題中添加*完整* XML配置。 – joschi

回答

0

的POJO業務層應該不會對Web服務客戶端的任何相關性。 POJO服務也不應該依賴於Web服務客戶端。 POJO服務需要使用「合同優先」Web服務進行包裝。聽起來你好像對我做錯了什麼。

即便如此,您需要從這些項目中創建JAR並將它們作爲依賴項添加到需要它們的其他項目中。或者,您可以在項目之間在IDE中創建一個依賴項,並一次性編譯它們。那不是春天的事情;它取決於你的IDE。

至於你的直接問題,確保你有一個彈性配置的地方,其中的<context:component-scan> XML。看起來Spring沒有找到你的pOPRenderService bean。如果這是一個依賴項,它可能是一個CLASSPATH問題。 Spring和類加載器都不能找到帶有該.class文件的JAR來解析依賴關係。