繁体   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