JSF Tomcat 7 PropertyNotFoundException

Encuentro una PropertyNotFoundException después de actualizar de tomcat 6 a tomcat 7. Este es el mensaje que recibo:

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

¿Alguien puede explicar por qué? Estoy usando jsf 2 (implementación de myfaces), y sí, doSomething no es una propiedad, pero el valor sí lo es. Funciona bien con tomcat 6. Obtengo esta excepción después de presionar un botón (lo que haría que la página se actualice después de acceder a la base de datos). ¡El formulario se representa correctamente la primera vez que se invoca!

¡Gracias!

preguntado el 16 de mayo de 11 a las 16:05

1 Respuestas

doSomething(someDTO.id)

EL anterior 2.2 no admite, de forma predeterminada, invocaciones de métodos como esa. Entonces, por qué funciona en Tomcat 6, que usa EL 2.1, me supera. Probablemente tenía una implementación EL personalizada en su /lib carpeta.

Sin embargo, dado que Tomcat 7.0 es compatible con EL 2.2, definitivamente debería funcionar bien en Tomcat 7.0. El único requisito previo es que su web.xml se declara conforme a la especificación Servlet 3.0 para que se activen las funciones de EL 2.2.

Asegúrese de que su web.xml cumple Servlet 3.0 y no 2.5 o anterior:

<?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>

contestado el 16 de mayo de 11 a las 21:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.