簡體   English   中英

在基於Spring-Hibernate的Web應用程序中創建JAR

[英]Create JAR out of a Spring-Hibernate based Web Application

我有一個帶有Hibernate的基於Spring MVC的Web應用程序。 以下是目錄結構:

  • src
    • com / myproject / abstractmodels / <-包含域對象的一些抽象Java文件
    • com / myproject / dao / personsmodel / <-dao層,使用休眠模式獲取數據
    • com / myproject / dao / anothermodel /
    • com / myproject / domain / personsmodel / <-用於休眠映射的Domain / BusinessObjects和HBM文件
    • com / myproject / domain / anothermodel /
    • com / myproject / service / personsmodelservice <-服務層與DAO層進行對話
    • com / myproject / service / anothermodelservice
    • com / myproject / controller / <-Servlet,使用Service層和Domain對象進行Web演示(JSP文件)
  • Web根目錄
    • 網絡信息
      • web.xml <-設置Web應用程序和spring框架,以使用以下xmls配置圖層。
      • 配置
        • services.xml <-設置服務層,即將服務接口與其實現粘合在一起,並注入DAO bean
        • hibernate.xml <-使用hibernate hbm文件進行映射並定義DAO bean
        • servlets.xml <-控制器和服務Bean注入其中
        • views.xml <-jsp文件

現在,我需要使用Service,DAO,Domain和AbstractModels包創建一個庫(jar)。 基本上,這個想法是,當給定這個jar文件和數據庫時,任何人都可以使用我們的休眠,服務和域對象創建自己的servlet /用戶界面或制作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文件中嗎? 是否需要一些特殊的清單配置?

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

  • 將此jar自動放入構建路徑
  • 根據Servlet規范,將此jar部署為Web應用程序的一部分,並將其放置在Web應用程序的類路徑中。

如果將jar放在項目構建路徑中,則將編譯項目,但jar不會成為已部署的webapp的一部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM