我想在 jboss 5.1 上使用 el-api 2.2。我不能使用 el-jboss,因为它与 BigDecimal 类型的 JSF 验证冲突。我已经在我的项目中集成了 el-api 2.2,并且在 tomcat 上它运行顺利。当我尝试在 Jboss 上部署时,我觉得他正在从他的公共 lib 目录而不是我的 jar 加载 el-api 1.0,因为我获得了以下堆栈跟踪:
javax.faces.FacesException: java.lang.NoSuchMethodError: javax.el.ELResolver.invoke(Ljavax/el/ELContext;Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;
at javax.faces.component.UIComponentBase$AttributesMap.get(UIComponentBase.java:1593)[...]
我的 web.xml 配置正确(这是我在谷歌上的第三天......)
<context-param>
<param-name>com.sun.faces.expressionFactory</param-name>
<param-value>com.sun.el.ExpressionFactoryImpl</param-value>
</context-param>
<context-param>
<param-name>org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL</param-name>
<param-value>true</param-value>
</context-param>
我知道覆盖与 Jboss 捆绑的库会起作用,但我不能将此技术用于生产服务器