2011-12-08 57 views
0

我有一個基於Spring MVC的Web應用程序和Hibernate。下面是目錄結構:從基於Spring-Hibernate的Web應用程序創建JAR

  • SRC
    • COM/myproject的/ abstractmodels/< - 包含域的一些抽象的java文件對象
    • COM/myproject的/刀/ personsmodel/< - DAO層,使用Hibernate來獲取數據
    • COM/myproject的/刀/ anothermodel/
    • COM/myproject的/域/ personsmodel/< - 域名/的BusinessObjects和HBM文件休眠映射
    • COM/myproject的/域/ anothermodel/
    • COM/myproject的/服務/ personsmodelservice < - 服務層會談到DAO層
    • COM/myproject的/服務/ anothermodelservice
    • COM/myproject的/控制器/ < - Servlet的使用服務層和用於網絡呈現域對象(JSP文件)
  • 的WebRoot
    • WEB-INF
      • web.xml < - 設置web應用程序和spring框架以使用下面的xmls來配置圖層。
      • 配置
        • 的services.xml < - 設置的服務層,也就是膠水與其實現方式中,服務接口和噴射DAO豆
        • hibernate.xml < - 使用冬眠HBM文件映射並限定DAO豆類
        • servlets.xml < - 豆控制器和服務豆注入到它
        • views.xml < - jsp文件

現在我需要創建一個使用服務,DAO,域和AbstractModels包庫(JAR)。基本上,這個想法是,當給定這個jar文件時,任何一個數據庫都可以創建自己的servlet /用戶界面,或者使用我們的hibernate,service和domain對象來創建Web服務。

我只是由含有目錄的jar文件:

- com/myproject/abstractmodels/ 
- com/myproject/dao/personsmodel/ 
- com/myproject/dao/anothermodel/ 
- com/myproject/domain/personsmodel/ 
- com/myproject/domain/anothermodel/ 
- com/myproject/service/personsmodelservice 
- com/myproject/service/anothermodelservice 

用了servlet和添加它來構建Web應用程序的路徑。該項目編譯,這意味着servlet可以找到服務bean和域對象,但它不會運行。無法創建在services.xml中定義的bean。我檢查了jar文件,並且包結構是正確的並且包含類文件。但是運行時,仍然會出現此錯誤:

Loading XML bean definitions from ServletContext resource [/WEB-INF/config/servlet.xml] 
Loading XML bean definitions from ServletContext resource [/WEB-INF/config/services.xml] 
Context initialization failed 
org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from ServletContext resource [/WEB-INF/config/services.xml]; nested exception is org.springframework.beans.FatalBeanException: Unable to create DWR bean creator for 'com.myproject.abstractmodels.ModelConstants#0'.; nested exception is java.lang.ClassNotFoundException: com.myproject.abstractmodels.ModelConstants 

如何使jar文件解決此問題?我是否也需要將WEB-INF目錄放入jar文件中?是否需要特殊的Manifest配置?

回答

0

該jar不能放在項目的構建路徑中。必須放在WEB-INF/lib文件夾,然後Eclipse將

  • 把這個罐子在構建路徑自動
  • 部署這個jar作爲Web應用程序,它會在Web應用程序的一部分classpath,按照servlet規範。

如果將jar放入項目構建路徑中,項目將編譯,但該jar不會成爲部署的webapp的一部分。

相關問題