Mis expresiones EL no se evalúan en una aplicación MyFaces 2.3 y Spring Boot 2.0.3

Tengo una aplicación MyFaces que se ejecuta enSpring Boot 2.0.3, todosServlets yContext Listeners están debidamente registrados y configurados, y aparentemente funcionan. Hasta miindex.jsf página se está representando. Las etiquetas se procesan correctamente en la.xhtml archivo

l problema es que todas lasEL expressions de la página index.jsf no se están procesando / evaluando. No se produce ningún error, pero donde puse#{myBean.property} siempre se representa como una @ vacString. Al depurarlo, veo que no se llama al código del servidor de mi bean administrado.

Intenté cambiar las bibliotecas el-api y el-impl para muchas versiones, pero nadie funcionó. La versión final que utilicé es lael-api 2.2 especificación, siguiendo la páginahttps: //myfaces.apache.org/core23/myfaces-impl/dependencies.htm

Como no se produce ningún error, no puedo entender dónde está el problema. ¿Alguien tiene este error? ¿Es posible ejecutar MyFaces 2.3 en una aplicación Spring Boot empaquetada como un archivo jar?

Aquí están las dependencias que estoy usando en el archivo de compilación de Gradle:

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
    compile("org.jetbrains.kotlin:kotlin-reflect")

    testCompile group: 'junit', name: 'junit', version: '4.12'
    testCompile('org.springframework.boot:spring-boot-starter-test')

    compile 'io.github.microutils:kotlin-logging:1.5.4'

    compile group: 'org.apache.myfaces.core', name: 'myfaces-impl', version: '2.3.1'
    compile group: 'org.apache.myfaces.core', name: 'myfaces-api', version: '2.3.1'
    compile group: 'javax.enterprise', name: 'cdi-api', version: '2.0' //CDI vem embutido no JavaEE 6, mas não no Tomcat 9

    compile group: 'org.glassfish.web', name: 'el-impl', version: '2.2'

    // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot
    compile 'org.springframework.boot:spring-boot-starter-web:2.0.3.RELEASE'
    compile 'org.apache.tomcat.embed:tomcat-embed-jasper:8.5.32'
    compile 'com.fasterxml.jackson.module:jackson-module-kotlin:2.9.6'
    compile group: 'org.ocpsoft.rewrite', name: 'rewrite-servlet', version: '3.4.2.Final'

}

Aquí está la configuración de Spring, para cargar los servlets de Caras:

@Component
open class ConfigureJSF : ServletContextInitializer {
    private val logger = KotlinLogging.logger {}

    @Throws(ServletException::class)
    override fun onStartup(servletContext: ServletContext) {
        //necessary to myfaces be enabled and work in spring boot, once servlets are loaded dynamically.
        servletContext.setInitParameter("org.apache.myfaces.INITIALIZE_ALWAYS_STANDALONE", "true")

        servletContext.setInitParameter("com.sun.faces.forceLoadConfiguration", "true");
        servletContext.setInitParameter("javax.faces.FACELETS_SKIP_COMMENTS", "true");

        servletContext.setInitParameter("javax.faces.DEFAULT_SUFFIX", ".xhtml")
        servletContext.setInitParameter("javax.faces.FACELETS_REFRESH_PERIOD", "1")

        servletContext.setInitParameter("org.apache.myfaces.EXPRESSION_FACTORY", "com.sun.el.ExpressionFactoryImpl")
        servletContext.setInitParameter("org.apache.myfaces.CACHE_EL_EXPRESSIONS", "alwaysRecompile")

                    }

    // Register ServletContextListener, necessary for Myfaces.
    @Bean
    open fun listenerRegistrationBean1(): ServletListenerRegistrationBean<ServletContextListener> {
        val bean = ServletListenerRegistrationBean<ServletContextListener>()
        bean.setListener(org.apache.myfaces.webapp.StartupServletContextListener())
        return bean
    }

    @Bean
    f,un requestContextListener(): RequestContextListener {
        return RequestContextListener()
    }

    //The faces servlet
    @Bean
    open fun facesServlet(): ServletRegistrationBean<MyFacesServlet> {
        logger.info { "Criando Faces Servlet..." }
        val servlet = org.apache.myfaces.webapp.MyFacesServlet() ;
        val servletRegistrationBean = ServletRegistrationBean(servlet, "*.jsf", "*.xhtml")
        servletRegistrationBean.setLoadOnStartup(1)
//        servletRegistrationBean.order = 1;
        return servletRegistrationBean;
    }
Editar

Copié la configuración de dependencia de otro proyecto que funciona, y se produjo el mismo resultado. Entonces, el problema no es con el código que pegué aquí, y sí, con mi entorno, que comenzaré a investigar más detalladamente sobre la secuencia. Mi entorno problemático contieneJDK 8, 9 and 10 yTomcat 9. Mi proyecto está dirigido aJDK 8. Quizás haya alguna incompatibilidad aquí y esta sea la razón por la que no se encuentran algunas anotaciones compiladas, creo que descubriré el problema muy pronto.

Respuestas a la pregunta(1)

Su respuesta a la pregunta