gpt4 book ai didi

java - 作为单独的 Maven 模块休息

转载 作者:行者123 更新时间:2023-11-30 09:36:31 26 4
gpt4 key购买 nike

我正在建立一个新的多模块项目结构。现在有一个 ejb 和一个 ear 模块,我想为 RESTful web 服务添加一个 web 模块。什么是最好的方法?

应用程序看起来像这样(模块及其内容):

  • app (pom): 父 pom
    • 核心 (ejb):ejb、hibernate、DAO、实体、业务逻辑
    • ear(ear):创建可部署容器的模块

现在我想添加一个 Restful 网络服务模块。

查看来自 http://www.jboss.org/jbossas/downloads 的 jboss-as-7 快速启动应用程序总是有一个 war 模块,它只是引导 rest 服务,而带有 jax-rs 注释的 bean 是 ejb 项目的一部分(在我的例子中 core:

  • 应用
    • ejb(包含服务 + 带有 jax-rs 注释的 bean)
    • 耳朵
    • war(只包含一个web.xml)

我对这种方法的问题是 ejb 模块包含服务和其余资源。将它们分开不是更好吗?或者这是要走的路吗?

否则:哪种方法会更好?

  • 应用
    • 核心
    • 耳朵
    • rest(包含 rest 资源 bean 和 web.xml 的 war)

  • 应用
    • 核心
    • 耳朵
    • 休息
    • rest-resources(其余资源 bean 的单独容器)
    • rest-war(只包含web.xml的war)

最佳答案

从 JEE6/JAX-RS 的角度来看,您唯一需要 WAR 文件的是实际上有一些东西可以交给应用程序服务器进行部署。它实际上可以不包含任何资源(除了使它成为有效存档所需的资源),并且只要您的类在类路径中的某处可用,您的应用程序仍然可以工作。因此,您真的可以根据需要捆绑这些类。

您需要的一件事是一个扩展 javax.ws.rs.core.Application 的类。此类用作标记/ Bootstrap ,以向应用程序服务器指示 Web 存档中有可用的 REST 资源需要加载。在大多数商店中,我看到这个类被放置在 WAR 项目本身中。

如果您真的在寻找组织技巧,我建议您首先将所有 REST 资源类分组到它们自己的项目中。添加资源类工作所需的任何项目(例如您的核心和耳朵项目)作为依赖项。添加所有三个(rest、ear、core)作为您的 war 项目的依赖项。

然后在实现过程中根据需要优化模型。

关于java - 作为单独的 Maven 模块休息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10719815/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com