java - jsf-api 和 jsf-impl 有什么关系?

标签 java jsf jakarta-ee jsf-2 jboss-arquillian

有一段时间我是struggling to get an arquillian test case running .该测试涉及以 JSF 类为根的类,它遇到了 ClassFormatError: Absent Code作为 javax.faces.model.DataModel 的实现找不到。

我的假设是我需要为我的测试提供 JSF 实现,但我发现的实现(例如与 JBoss 捆绑在一起的实现)没有 javax.faces包,只有com.sun ,我找不到 DataModel 的踪迹类。

我在哪里误解了这里的工作方式?为什么不 impl实际执行 api

最佳答案

API:

  • 消费者可以编写代码的公共(public)类型

实现:

  • 消费者不应依赖私有(private)类型
  • 实现细节,包括标记(例如 HTML)和容器(例如 servlet)等内容

这种分离并不像它应该的那样干净,但这主要是意图。将这两个 jar 分开是开发人员选择组织代码的方式,但在大多数情况下,您需要同时使用这两个 jar 才能使用该库。

关于java - jsf-api 和 jsf-impl 有什么关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13048970/

相关文章:

maven - 无法在项目上执行目标 org.wildfly.plugins :wildfly-maven-plugin:1. 0.0.Final:deploy (default-cli)

java - JSON数据问题

java - UnsupportedOperationException getUserPrincipal

java - 从sup标签中检索文本

java - 无法解析的日期,以冒号分隔时区

jsf - 项目上线时Manager Bean不返回

jsf - Primefaces 数据表行扩展导出

jsf - 如何将消息从数据库加载到资源包并通过消息键将字符串绑定(bind)到 View

java - 在 Java 中对从数据库检索的一小部分数据执行连接操作。 (上下文: web application)

java - java中的原始数据类型是如何定义/编写的?