jakarta-ee - 将 JBoss 5.1 从 EL 2.1 升级到 EL 2.2?

标签 jakarta-ee jboss el jboss5.x

这个问题又快又简单。

JBoss 5.1 开箱即用,支持 JSP 和 EL(表达式语言)2.1 以及 Servlet 2.5。

是否可以升级或破解它以使用 EL 2.2?

更新:

我尝试了 BalusC 的回答,但收到以下错误:

2011-08-01 10:29:52,418 SEVERE [javax.enterprise.resource.webcontainer.jsf.config] (main) Unable to instantiate ExpressionFactory 'org.jboss.el.ExpressionFactoryImpl' 2011-08-01 10:29:52,441 SEVERE [javax.enterprise.resource.webcontainer.jsf.config] (main) Critical error during deployment: com.sun.faces.config.ConfigurationException: It appears the JSP version of the container is older than 2.1 and unable to locate the EL RI expression factory, com.sun.el.ExpressionFactoryImpl. If not using JSP or the EL RI, make sure the context initialization parameter, com.sun.faces.expressionFactory, is properly set.

我不确定这意味着什么或如何解决它。为什么认为有低于2.1的JSP版本?

最佳答案

不,虽然替换库很简单,但您毕竟必须重新声明符合 Servlet 3.0 的 web.xml 才能使其正常工作。如果不将所有库替换为与 JBoss 6.0(Servlet 3.0 impl)中的库相同,JBoss 5.1(Servlet 2.5 impl)将无法识别这一点。将整个系统升级到 JBoss 6.0 会更容易。

我知道您正在使用 JSF 2.0(在查看旧问题标签时)。如果唯一的功能需求是支持 JSF 支持 bean 操作方法调用,并尽可能使用 EL 2.2 中的参数,那么最好的选择是删除 JBoss-EL JAR 的副本在您的 web 应用程序的 /WEB-INF/lib 中创建一个文件,并将以下上下文参数添加到您的 web 应用程序的 web.xml 中(假设您使用的是 Mojarra)。

<context-param>     
    <param-name>com.sun.faces.expressionFactory</param-name>
    <param-value>org.jboss.el.ExpressionFactoryImpl</param-value>   
</context-param>

不,不可能在 JBoss 级别配置它。您确实必须在网络应用程序级别执行此操作。有关 JBoss EL(它是在 EL 中调用带参数的方法背后的发起者)的更多信息,check chapter 34 of the Seam documentation .

关于jakarta-ee - 将 JBoss 5.1 从 EL 2.1 升级到 EL 2.2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6877494/

相关文章:

jsp - javax.el.E​​LException : The class [java. lang.Number] 必须是公共(public)的、非抽象的且不是接口(interface)

java - 如何在 JBoss EAP 6.4.0 中使用 bean validation 1.1?

html - 无法使用 CORS 下载文件

jsp - JSP EL、JSF EL 和 Unified EL 之间的区别

jsf - Wildfly 以错误开始。 javax.faces.FacesException : Unable to find CDI BeanManager

jboss - 如何从默认的 JBoss 服务器配置中删除 Hypersonic?

jsf - <p :graphicImage> throws javax. el.PropertyNotFoundException on #{bean.foo().bar()},但 #{bean.fooAndBar()} 有效

java - 无法在 JRE 9 上运行 java 飞行记录器

jakarta-ee - 如何在ejb 3.0中实现缓存?

windows - 如何在 Debug模式下将 wildfly 作为 Windows 上的服务运行?