将 JBoss 5.1 从 EL 2.1 升级到 EL 2.2? [英] Upgrade JBoss 5.1 from EL 2.1 to EL 2.2?

查看:16
本文介绍了将 JBoss 5.1 从 EL 2.1 升级到 EL 2.2?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这个问题既快速又简单.

This question is quick and simple.

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

JBoss 5.1 comes out of box supporting JSP and EL (Expression Language) 2.1 and Servlet 2.5.

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

Is it possible to upgrade or hack this to use EL 2.2?

更新:

我尝试了 BalusC 的回答并得到以下错误:

I tried what BalusC's answer stated and got the following error:

2011-08-01 10:29:52,418 严重 [javax.enterprise.resource.webcontainer.jsf.config] (main) 无法实例化 ExpressionFactory 'org.jboss.el.E​​xpressionFactoryImpl'2011-08-01 10:29:52,441 严重 [javax.enterprise.resource.webcontainer.jsf.config](主要)部署期间的严重错误:com.sun.faces.config.ConfigurationException:容器的 JSP 版本似乎早于 2.1,无法定位 EL RI 表达式工厂 com.sun.el.E​​xpressionFactoryImpl.如果不使用 JSP 或 EL RI,请确保正确设置上下文初始化参数 com.sun.faces.expressionFactory.

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

I am not sure what this means or how to get around it. Why does it think there is a JSP version below 2.1?

推荐答案

不,虽然替换 libs 是微不足道的,你毕竟必须重新声明 web.xml 符合 Servlet 3.0 才能得到它工作.如果不将其所有库替换为与 JBoss 6.0(这是一个 Servlet 3.0 实现)中的库相同,JBoss 5.1(它是一个 Servlet 2.5 实现)是不会识别这点的.将整个东西升级到 JBoss 6.0 会更容易.

No, while replacing the libs is trivial, you'd after all have to redeclare the web.xml conform Servlet 3.0 to get it to work. This ain't going to be recognized by JBoss 5.1 (which is a Servlet 2.5 impl) without replacing all of its libraries to be the same as the ones in JBoss 6.0 (which is a Servlet 3.0 impl). It would be easier to just upgrade the whole thing to JBoss 6.0.

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

I understand that you're using JSF 2.0 (when looking at the old question tags). If the sole functional requirement is to support JSF backing bean action method invocations with arguments like as possible in EL 2.2, then your best bet is to drop a copy of JBoss-EL JAR file in /WEB-INF/lib of your webapp and add the following context param to your webapp's web.xml, assuming that you're using 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 中使用参数调用方法背后的发起者)的更多信息,请参阅 查看 Seam 文档的第 34 章.

No, it's not possible to configure it at JBoss level. You'd really have to do it at webapp level. For more about JBoss EL (which was the initiator behind invoking methods with arguments in EL), check chapter 34 of the Seam documentation.

这篇关于将 JBoss 5.1 从 EL 2.1 升级到 EL 2.2?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆