1

我需要你的帮助来解决我的 proyect spring 3 和 weblogic 服务器中的这个错误,

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 com.sun.el.parser.AstValue.getValue(AstValue.java:111)
at com.sun.el.parser.AstValue.getValue(AstValue.java:163)
at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:219)

我尝试添加 el-api-2.2 和 el-impl-2.2 并没有任何反应并修改我的 weblogic-application.xml

    <wls:application-param>
    <wls:param-name>webapp.encoding.default</wls:param-name>
    <wls:param-value>UTF-8</wls:param-value>
</wls:application-param>

<wls:prefer-application-packages>
    <wls:package-name>javax.el.*</wls:package-name>
    <wls:package-name>com.sun.el.*</wls:package-name>
            <wls:package-name>javax.faces.*</wls:package-name>
            <wls:package-name>com.sun.faces.*</wls:package-name>
    <wls:package-name>org.springframework.*</wls:package-name>
    <wls:package-name>antlr.*</wls:package-name>
</wls:prefer-application-packages>

并在我的 web.xml 中添加这个段

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

请提供任何帮助,我将不胜感激

4

2 回答 2

0

如果您使用的是 Spring + JSF 集成,则需要将 JSF EL 更改为 Spring:将以下代码添加到faces-config.xml

<application>
        <el-resolver>
            org.springframework.web.jsf.el.SpringBeanFacesELResolver
        </el-resolver>
</application>
于 2013-02-04T16:12:33.003 回答
0

该错误是因为 weblogic 库包含 jsf 和 el,为了解决此错误,需要在 weblogic.xml 中添加此段,并且任何描述都应设置为 false

<container-descriptor>
    <prefer-application-packages>
        <package-name>javax.el.*</package-name>
        <package-name>com.sun.el.*</package-name>
        <package-name>javax.faces.*</package-name>
        <package-name>com.sun.faces.*</package-name>
        <package-name>org.springframework.*</package-name>
        <package-name>antlr.*</package-name>
    </prefer-application-packages>
</container-descriptor>  

谢谢大家

于 2013-02-05T19:04:31.640 回答