什么是“Java EE 7 API 库”和“Java EE Web 7 API 库”以及何时使用它们?

2023-12-28

我有一个成熟的 Java EE 项目在 GlassFish 4.1 / Java EE 7 (NetBeans 8.0.2) 上运行,不使用 Apache Maven。

根据项目功能,必须将 CDI 依赖项添加到项目/模块,即 EE 模块和 Web 模块(以及类库,如果有)。

很长一段时间以来,我一直很困惑地看到人们建议将“Java EE 7 API Library”或“Java EE Web 7 API Library”添加到编译时类路径作为 CDI 依赖项(这些库捆绑在 NetBeans 和使用 NetBeans 时,开箱即用)。

由于这些库包含一组 API,可能是从 Servlet API 开始的整个 Java EE 堆栈,因此当 CDI 功能为Java EE 应用程序中需要。

为什么多次建议添加这些库之一,尤其是在 NetBeans 项目中,而仅cdi-api.jar作为 CDI 依赖就足够了吗?

I do not find a canonical answer on this site nor somewhere else as to which library exactly is to be added in NetBeans projects, when the CDI functionality is required in Java EE applications. Adding only cdi-api.jar goes fine, by the way.


All of javaee-api, javaee-web-api and cdi-api只是 API 定义。它们不包含功能,只包含必要的接口,而不是使您的代码编译。结果是没有一个javaee-api nor javaee-web-api应该包含在您的应用程序中,因为它们已经包含在应用程序服务器中。该实现也是由应用程序服务器提供的,应用程序服务器本身相当大,有时具有超过 100MB 的库。

如果您的应用程序仅依赖于 CDI,您可以随意放置cdi-api作为依赖。如果您想从 javaee 获得更多信息,那么最好选择其中一种配置文件(完整版或网页版)。但是,请注意,服务器始终至少提供 Web 配置文件中包含的所有 API,因此也值得考虑使用它。有选择地选择依赖项仅适用于不完全支持 Java EE 的应用程序服务器(例如 Tom EE)。在这种情况下,有时您甚至需要将实现包含在应用程序中或将其放入服务器中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么是“Java EE 7 API 库”和“Java EE Web 7 API 库”以及何时使用它们? 的相关文章

  • 如何从引用的java项目访问静态资源(WEB-INF)文件夹中的文件?

    我有一个 Web 应用程序 其中包含一个作为 spring bean 公开的应用程序服务之一的配置 xml 文件 另外 我在同一工作区中有一个独立的 java 应用程序 它从其 pom xml 引用我的 Web 应用程序项目 它使用 Spr
  • Grails transactionManager 运行时出现异常

    当编译一个grails v2 3 3项目运行项目时出现以下错误Netbeans 7 4 Loading Grails 2 3 3 Configuring classpath Configuring classpath Environment
  • 使用 Netbeans(和 Maven)运行正确的上下文根

    当我从 Netbeans 7 2 运行项目时遇到了一些问题 我还使用 Glassfish 3 1 2 服务器 事实上 我正在将现有项目从 Ant 迁移到 Maven 我的 pom xml 已完成 并且我已经使用了上下文根的自定义 如下所述
  • 引导类路径未与 -source 1.6 3 一起设置[重复]

    这个问题在这里已经有答案了 我在编译代码时遇到此错误 选项 引导类路径未与 source 1 6 一起设置 我知道有一些关于它的主题 但我就是不明白 我是初学者 所以对我来说有点复杂 该程序来自我的学校 我在家里使用 JDK 8 如您所知
  • org.jdesktop.application 包不存在

    几天以来我一直在构建一个 Java 桌面应用程序 一切都很顺利 但是今天 当我打开Netbeans并编译文件时 出现以下编译错误 Compiling 9 source files to C Documents and Settings Ad
  • 休眠以持久保存日期

    有没有办法告诉 Hibernate java util Date 应该持久保存 我需要这个来解决 MySQL 中缺少的毫秒分辨率问题 您能想到这种方法有什么缺点吗 您可以自己创建字段long 或者使用自定义的UserType 实施后User
  • 是否可以在 Java 8 中调试 Lambda

    我刚刚开始使用 Java 8 Lambda 我注意到我无法在 NetBeans IDE 中调试它们 如果我尝试将断点附加到以下代码 我会得到一个变量断点 这绝对不是我想要的 private EventListener myListener
  • Netbeans 自动完成功能停止工作?

    我使用的是 Netbeans 6 9 1 一切都很好 但是突然间 它停止检测对代码所做的任何更改 例如新变量 函数等 如果我尝试重构 重命名变量 例如按 CTRL R 它说 重构在此上下文中不可用 如果重要的话 它在 PHP 项目中 有任何
  • 无法在 NetBeans 7.4rc1 上安装 nb-scala

    我已经安装了 NB 7 4rc1 并从下载了 nb scalahttp sourceforge net projects erlybird files nb scala http sourceforge net projects erlyb
  • 如何为 GlassFish Web 应用程序提供对外部资源(文件)的访问?

    我是一个有点玻璃鱼 http en wikipedia org wiki GlassFish初学者 所以请原谅我对这个问题的无知 基本上 我们正在为一个游戏网站提供服务 为了使我们的网络应用程序可以下载客户端 我们将其复制到domain1中
  • Tomcat 基于表单的身份验证出现 HTTP 状态 408 错误

    我的申请是写在JSP并且有基于表单的身份验证 我正在使用 Apache 和 Tomcat 7 这是我的问题 有时 当会话超时并尝试重新登录应用程序时 它会显示以下 408 错误消息 HTTP 状态 408 已超出登录过程允许的时间 如果您想
  • JSF - 实施受限页面过滤器

    我正在关注 BalusC 的回答JSF 2 0 如何获取在浏览器地址栏中输入的 URL https stackoverflow com questions 4105263 jsf 2 0 how to get the url that is
  • JSF 2.x @EJB 依赖注入错误

    因此 正如编程中通常发生的那样 我提出了一个问题 而一个潜在的解决方案又引发了更多问题 和错误 我刚开始使用 servlet JSF 和 EJB 并且遇到了依赖注入错误 这是我原来的问题 JSF h 标签不显示 https stackove
  • Java EE7 中 Qualifier 中的 @Nonbinding 注释的目的是什么?

    我正在阅读CDIJavaEE 7 中的注入特别是使用 Qualifier and Produces注入一个custom Data type变成一颗豆子 我有以下代码取自JBoss 文档 http docs jboss org weld re
  • 从一台服务器到多台可配置服务器的 JNDI 查找

    我们在具有不同 IP 的不同机器上有几个 JBoss 服务器 不是集群 而是属于不同客户的单个独立 JBoss 7 1 1 实例 所有系统上都部署了完全相同的 EAR 我们尝试发送一个名为Group从一个系统到另一个系统 问题 我们尝试了一
  • Git 从 Netbeans 推送到 Gerrit

    我在将提交从 Netbeans 7 4 在 Linux 上 推送到 Gerrit 进行审查时遇到问题 我的git配置 core repositoryformatversion 0 filemode true logallrefupdates
  • 如何在Netbeans中自定义jTable标题列字体大小?

    我尝试改变jtable标题字体大小Netbeans 但还不能 无论如何 表行字体大小已成功更改 这是我使用的方法 更改后的输出 问题 标题字体大小未更改 但我也想改变这一点 所以请帮助我该怎么做 一种方法是使用UIManager并替换默认的
  • Tomcat 与 Weblogic JNDI 查找

    我们使用的 Weblogic 服务器已配置为允许 JNDI 数据源名称 例如 appds 对于开发 本地主机 我们可能会运行 Tomcat 并且在 server xml 的 部分中声明时 Tomcat 会将 JNDI 数据源挂在 JNDI
  • 不兼容的类型:在 java netbeans 中对象无法转换为 String

    我试图在我的项目中使用对象数组 但出现错误 incompatible types Object cannot be converted to String 在这一行 ST1 new String emt1 emt2 emt3 emt4 现在
  • struts.xml 和 struts-config.xml

    struts xml 和 struts config xml 有什么区别 两者是相同的还是有什么区别 Struts框架的核心配置文件默认是struts xml对于 Struts 2 和struts config xml对于Struts 1

随机推荐

  • 检查触发器是否存在

    我对公共模式中所有表的触发器有以下查询 SELECT CREATE TRIGGER tab name if modified trg INSERT OR UPDATE OR DELETE ON tab name FOR EACH ROW E
  • Angular 使用变量或循环创建选择器标签

    我需要使用变量创建 app component html 的选择器标签 假设变量名称为 componentVar string 我需要我的 app component html
  • 如何为 Azure 中的每个分支设置不同的管道

    我有一个项目 但有两个 主 分支 master 虚拟 主控 他们每个人都会有自己的azure pipeline yml具体针对他们的分支机构 第一条管道在master触发器设置为 trigger batch true branches in
  • 返回花括号在 javascript 中意味着什么(例如 return { init : init} )[重复]

    这个问题在这里已经有答案了 我正在查看这段代码 function var sidescroll function init function STUFF return init init What does this do sidescro
  • 以编程方式创建 UITextField 事件

    我在创建行时以编程方式将文本字段添加到 TableView 中 我试图通过这样做来订阅这些文本字段的 TouchUpInside 事件 UITextField eTextField UITextField alloc initWithFra
  • Android 垃圾收集器是否会在运行时暂停其他应用程序?

    我发现一些关于 Android 垃圾收集器的信息与我矛盾 Android 开发者指南 说道 Android 3 0 是该平台的第一个版本 旨在运行于 单核或多核处理器架构 各种各样 Dalvik VM Bionic 库和其他地方的更改增加了
  • Clang 融合乘加取决于表达式参数的恒定性

    正如答案中所示clang 14 0 0 浮点优化 https stackoverflow com questions 73985098 clang 14 0 0 floating point optimizations 自版本 14 起 C
  • 使用 Cython 优化 NumPy

    我目前正在尝试优化我用纯Python编写的代码 这段代码使用NumPy http en wikipedia org wiki NumPy当我使用 NumPy 数组时 工作量非常大 下面你可以看到我转换成的最简单的课程Cython http
  • 多个 join 语句未返回预期结果

    我必须编写一个具有以下要求的查询 查询应该返回所有的列表 名为的客户的条目值 Steve 以及显示的每个日期 如果 可用 的最新状态详细信息 那个日期 顾客表 CustomerID CustomerName 1 Steve 2 John 参
  • 材料日期选择器中的奇怪行为

    我正在尝试使用物化日期选择器 http materializecss com forms html http materializecss com forms html 这样 我想在单击图标时弹出日期选择器 我已经实现了两种实现 其中两者之
  • 使用 C# 将行添加到 Word 文档 [重复]

    这个问题在这里已经有答案了 我使用 C 在 Word 文档中创建了一个表 我试图将行添加到表的末尾 现在我有 4 行的表 我尝试这样添加 int rowIndex 1 this Tables 1 Rows Add this Tables 1
  • 如何使用 CSS 或 jquery 使链接不可点击? [复制]

    这个问题在这里已经有答案了 我有以下 HTML ul class static li class static dynamic children a class static dynamic children menu item href
  • 提示用户输入信息,然后对数据进行排序

    对于一个班级项目 我需要用 Javascript 创建一个程序 要求用户输入 3 个名称 然后按字母顺序对名称进行排序并将其打印在屏幕上 我已经弄清楚如何创建一个提示框供用户输入数据 并且我可以让程序将用户输入的字符串打印到屏幕上 但是 我
  • 如何在 SQLite 中创建数据库并添加 2 个表

    我正在使用 SQLite ADO NET 提供程序 我想通过 vb net 中的代码创建一个包含 2 个表的数据库 请提供相同的代码 我正在使用 VS 2010 Winforms 在 XP SP3 Pro 下工作 使用 SQLiteConn
  • Go 中语义注释有什么用?

    类推这个问题 https stackoverflow com questions 10858787 what are the uses for tags in go关于标签 我注意到除了纯粹的评论之外 评论还有多种用途 例子 去 生成 ht
  • 红宝石块内的赛璐珞异步不起作用

    尝试实现赛璐珞async在我的工作示例中似乎表现出奇怪的行为 这是我的代码 class Indefinite include Celluloid def run loop do 1 each do i async on background
  • 将不规则定位的数据插值到

    我正在尝试显示彩色表面爪哇世界风 http worldwind arc nasa gov java 其中颜色取决于一组不规则定位数据中的纬度 经度定位值 例如温度 我正在使用中找到的示例gov nasa worldwindx example
  • 是否可以在 Bootstrap Modal 主体中动态加载现有页面

    我是 Blazor 新手 现在正在从事 Blazor WebAssembly 项目 我有几个剃刀页面 其中有一个表 我在其中显示来自 SQL 的数据 当我单击其中一个表行时 它会打开一个页面 我可以在其中执行 CRUD 操作 现在 我不需要
  • 查找一年中的总天数(熊猫)

    有没有办法计算 Pandas 中给定 YYYY MM DD 日期时间格式的一年中的总天数 我已经探索了 dt dayofyear 但这个函数似乎提供了从年初到我的日期时间变量的天数 举个例子 如果我的日期是 2020 03 30 我应该知道
  • 什么是“Java EE 7 API 库”和“Java EE Web 7 API 库”以及何时使用它们?

    我有一个成熟的 Java EE 项目在 GlassFish 4 1 Java EE 7 NetBeans 8 0 2 上运行 不使用 Apache Maven 根据项目功能 必须将 CDI 依赖项添加到项目 模块 即 EE 模块和 Web