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版本?

最佳答案

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

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

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

不,不可能在 JBoss 级别配置它。您真的必须在 webapp 级别执行此操作。有关 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/15205469/

相关文章:

jsf - 是否有任何理由在 CDI session 范围 bean 中使用有状态 EJB

java - 防止jboss 4.2上的XXE攻击

java - 如何使用Jboss Tools Eclipse插件 "hot"在Jboss中部署war依赖?

java - 上下文根的 Web.xml 安全约束不适用

hadoop - 如何使用自定义Oozie EL函数读取HDFS文件

apache - 为 c3p0 ComboPooledDataSource 加密密码

database - 在大型数据库表创建过程中需要管理聚合数据的策略

jakarta-ee - Struts 2-s :select using Map

java - 在 MVEL 中格式化 orb 标签

java - JBoss 6 上的 JSF 1.2 和 EL 表达式未解析