JSF Tomcat 7 PropertyNotFoundException

时间:2011-05-16 16:44:42

标签: jsf tomcat el

从tomcat 6升级到tomcat 7后遇到PropertyNotFoundException。这是我收到的消息:

value="#{someHandler.result.someList[1].doSomething(someDTO.id).value}": Property 'doSomething' not found on type com.someproject.SomeClass

任何人都可以解释原因吗?我正在使用jsf 2(myfaces实现),是的,doSomething不是属性,但值是。它与tomcat 6一起工作正常。按下一个按钮后会出现此异常(这会在进行一些数据库访问后刷新页面)。第一次调用表单时表单很好!

谢谢!

1 个答案:

答案 0 :(得分:1)

doSomething(someDTO.id)

EL previous 2.2默认情况下不支持类似的方法调用。那么为什么它适用于使用EL 2.1的Tomcat 6是超出我的。可能它在/lib文件夹中有一个自定义EL实现。

但是,由于Tomcat 7.0支持EL 2.2,因此它绝对可以在Tomcat 7.0上使用。唯一的要求是声明您的web.xml符合Servlet 3.0规范,以便触发EL 2.2功能。

确保您的web.xml符合Servlet 3.0而不是2.5或更早版本:

<?xml version="1.0" encoding="UTF-8"?>
<web-app
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">

    <!-- config here -->
</web-app>