JSF Tomcat 7 PropertyNotFoundException - PullRequest
0 голосов
/ 16 мая 2011

После обновления с 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 Ответ

1 голос
/ 16 мая 2011
doSomething(someDTO.id)

EL, предшествующий 2.2, по умолчанию не поддерживает подобные вызовы методов. Так почему он работает на Tomcat 6, который использует EL 2.1, мне не понятно. Вероятно, он имел собственную реализацию EL в своей папке /lib.

Однако, поскольку Tomcat 7.0 поддерживает EL 2.2, он определенно должен работать на Tomcat 7.0. Единственное предварительное условие - заявлено, что ваш web.xml соответствует спецификации Servlet 3.0, поэтому будут задействованы функции EL 2.2.

Убедитесь, что ваш web.xml соответствует сервлету 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...