Hey Till,
this is definitely not a known issue, thanks for reporting! We had a
similar issue like this a couple months ago in our milestone phase:
https://issues.apache.org/jira/browse/TOMEE-4355
I filed a bug for this in our JIRA so we can keep track of this
https://issues.apache.org/jira/browse/TOMEE-4450
Thanks
Markus
On 30.01.25 12:34, Till Gräfenberg wrote:
Hello together,
Starting with TomEE Plume 10.0.0 I mentioned some issues in resolving
implicit ELExpressions like "#{request}" or "#{session}" in my JSF
project.
The resolved expression is a proxy object without any initialized
attributes.
In order to reproduce this issue, I set up a vanilla TomEE Plume
installation. The faces servlet is configured. Loading the following
.xhtml page:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="jakarta.faces.html"> <h:body><h:outputText
value="#{request.contextPath}"/></h:body></html>
gives this error message:
30-Jan-2025 12:04:14.294 SCHWERWIEGEND [http-nio-8080-exec-8]
com.sun.faces.application.view.FaceletViewHandlingStrategy.handleRenderException
Error Rendering View[/index.xhtml]
jakarta.el.PropertyNotFoundException: /index.xhtml @15,54
value="#{request['contextPath']}": Die Eigenschaft [contextPath] wurde
für den Typ
[org.apache.webbeans.custom.Object$$OwbNormalScopeProxy6949990480] nicht
gefunden
at
com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:75)
at
jakarta.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:206)
at
jakarta.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:175)
at jakarta.faces.component.UIOutput.getValue(UIOutput.java:134)
at
com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:163)
at
com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:303)
at
com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:135)
at
jakarta.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:586)
at
jakarta.faces.component.UIComponent.encodeAll(UIComponent.java:1442)
at
jakarta.faces.component.UIComponent.encodeAll(UIComponent.java:1438)
at
jakarta.faces.component.UIComponent.encodeAll(UIComponent.java:1438)
at
com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:449)
at
com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:160)
at
jakarta.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:125)
at
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:93)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:72)
at
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:150)
at
jakarta.faces.webapp.FacesServlet.executeLifecyle(FacesServlet.java:692)
at
jakarta.faces.webapp.FacesServlet.service(FacesServlet.java:449)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
at
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
at
org.apache.openejb.server.httpd.EEFilter.doFilter(EEFilter.java:67)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at
org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
at
org.apache.tomee.catalina.OpenEJBSecurityListener$RequestCapturer.invoke(OpenEJBSecurityListener.java:97)
at
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:663)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)
at
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397)
at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905)
at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741)
at
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at
org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
at
org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: jakarta.el.PropertyNotFoundException: Die Eigenschaft
[contextPath] wurde für den Typ
[org.apache.webbeans.custom.Object$$OwbNormalScopeProxy6949990480] nicht
gefunden
at
jakarta.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:261)
at jakarta.el.BeanELResolver.property(BeanELResolver.java:330)
at jakarta.el.BeanELResolver.getValue(BeanELResolver.java:99)
at
com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:139)
at
com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:164)
at org.apache.el.parser.AstValue.getValue(AstValue.java:161)
at
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:152)
at
org.apache.webbeans.el22.WrappedValueExpression.getValue(WrappedValueExpression.java:67)
at
com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:73)
... 45 more
I couldn't reproduce this behavior in TomEE Plus 10.0.0. Furthermore, I
couldn't reproduce it on other application servers using Mojarra. Hence,
I suppose it to be plume specific.
Unfortunately, I was not able to find this issue documented. Is there a
problem in my configuration? Is it a known issue? Have these expressions
been removed from the specification?
Thanks in advance