java - 如何处理maven下载的api中缺少的ExpressionFactory#newInstance()方法?

标签 java maven-2 jakarta-ee

根据java ee 5 api ExpressionFactory提供了一个方法#newInstance . 我正在使用 maven 中提供的官方 javaee-api:Java EE 5 APIs now in a Maven repository...

但是这个jar没有提供这个方法。所以我得到了编译器错误。

如何在不使用 javaee 实现的情况下获得可编译版本,例如玻璃鱼,openejb?

maven(java.dev.net)官方提供的Java EE 6.0 jar中包含该方法。

最佳答案

According to java ee 5 api ExpressionFactory provides a method #newInstance.

嗯,javadoc 不是证明,实际上,这很可能是 Java EE 5 javadoc 中的错误。 Maintenance Review 1 of the JSR-245 中添加了两个 newInstance() 工厂方法(要使 EL 独立并将其从 JSP 2.1 中移除,请查看 JSR-245 MR1 Change Log 了解详细信息)但该评论从未发布过

因此,您在 java-ee bundle 中找不到此方法也就不足为奇了。在 java.net 存储库中可用。

But this jar does not provide this method. So I get compiler errors.

正如预期的那样。 Java EE 5 中没有这种方法(至少这是我的理解)。所以你需要使用:

ExpressionFactory factory = new ExpressionFactoryImpl();

The official Java EE 6.0 jar provided by maven (java.dev.net) contains this method.

是的,因为这是 Java EE 6,因为 EL 现在是独立的,有自己的规范(从技术上讲,EL 仍然在 JSR-245 中,如果这令人困惑,抱歉)。所以 Java EE 6 包括 EL 2.2(是的,版本 jumped from 1.1 to 2.1.2,然后是 2.2,以便更好地与 JSP 版本保持一致)。此版本确实公开了 ExpressionFactory 上的 newInstance() 方法。

关于java - 如何处理maven下载的api中缺少的ExpressionFactory#newInstance()方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2206915/

相关文章:

java - 如何扩展匿名内部类中某些变量的范围

JAVA/GWT - DateFormat 恢复为 1/15/1970

java - 无法使用模式匹配删除java中所有出现的html标签

java - GlassFish 4 或 Tyrus 中的错误 : Decoder#willDecode is called twice for each ByteBuffer?

jakarta-ee - 连接到 Web 模块中的 JSF CDI bean 后,是否可以传递来自 EJB 模块的 CDI 注入(inject) EntityManager?

java - 当字段名称未知时解析 json 对象

eclipse - Java maven开发速度慢

maven-2 - Tomcat-maven-plugin 401 错误

version-control - SCM URL 相对于 POM 中的父 SCM URL

java - 如何将 xml 数据从 java 应用程序传输到 .net 应用程序