Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine java.lang.NoSuchMethodError:javax.el.ELContext.notifyBeforeEvaluation(Ljava/lang/String;)V_Google App Engine_Jsf_El_Jsf 2.2 - Fatal编程技术网

Google app engine java.lang.NoSuchMethodError:javax.el.ELContext.notifyBeforeEvaluation(Ljava/lang/String;)V

Google app engine java.lang.NoSuchMethodError:javax.el.ELContext.notifyBeforeEvaluation(Ljava/lang/String;)V,google-app-engine,jsf,el,jsf-2.2,Google App Engine,Jsf,El,Jsf 2.2,我试图让JSF2.2在GAE1.8.7上运行。我将遵循本教程: 当我在本地运行它时,index.jsf页面呈现良好 但是,当我将其部署到GAE时,尽管普通servlet运行良好,index.jsf在GAE日志中显示了HTTP 505错误,如下所示: 2013-11-15 11:23:42.578 /index.jsf 500 533ms 0kb Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)

我试图让JSF2.2在GAE1.8.7上运行。我将遵循本教程:

当我在本地运行它时,index.jsf页面呈现良好

但是,当我将其部署到GAE时,尽管普通servlet运行良好,index.jsf在GAE日志中显示了HTTP 505错误,如下所示:

2013-11-15 11:23:42.578 /index.jsf 500 533ms 0kb Mozilla/5.0 (Windows NT 6.3; WOW64)   AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36 module=default version=1 W
2013-11-15 11:23:42.573 /index.jsf java.lang.NoSuchMethodError: javax.el.ELContext.notifyBeforeEvaluation(Ljava/lang/String;)V 
    at com.sun.el.lang.EvaluationContext.notifyBef
2013-11-15 11:23:42.577 Uncaught exception from servlet java.lang.NoSuchMethodError: javax.el.ELContext.notifyBeforeEvaluation(Ljava/lang/String;)V 
    at com.sun.el.lang.Evalua

我使用的是maven repository中的javax-faces.2.2.0.jar和javax-el.3.0.0.jar。

如果您真的不需要el 3.x功能,那么我建议移动到2.x版本,然后在web.xml文件中指定它作为上下文参数:

<context-param>
    <param-name>com.sun.faces.expressionFactory</param-name>
    <param-value>com.sun.el.ExpressionFactoryImpl</param-value>
</context-param>
上述声明将确保您使用的是与代码一起提供的EL版本,而不是GAE/J容器提供的版本

不要忘记在您的库中也包括EL实现jar


p、 s:如果有什么帮助的话,我在GitHub上有一个可以帮助您入门的工具。

顺便问一下,GAE使用的EL版本是什么?这与我的代码不兼容。请查看GAE/J SDK中的共享库。与Servlet和jspjar一起,您将看到EL-jar文件。如果我没有弄错的话,这就是ApacheEL实现。