Jsf 错误包装异常焊缝2.2.8
我正在使用Jsf 错误包装异常焊缝2.2.8,jsf,jsf-2,Jsf,Jsf 2,我正在使用 RichFaces 4.5.1.1最终版本 焊接2.2.8.4最终 莫哈拉2.1.29 JSF2.1 问题是,当我开始使用Facelets模板时,会抛出一个异常,在这种情况下,显然是NullPointerException,但如果您看到stacktrace正在将异常包装到另一个异常中,我看不到问题的真正原因,即原始异常。重要的是要说,如果我来的NPE代码工作完美。任何导致问题的想法,Facelets、JSF或Weld。这种情况无一例外 我有这样的结构: 控制器 @Named(va
- RichFaces 4.5.1.1最终版本
- 焊接2.2.8.4最终
- 莫哈拉2.1.29
- JSF2.1
@Named(value="productoController")
@ConversationScoped
public class ProductoController {
public void alta(){
String test = null;
//Throw NPE
test.concat("");
}
}
第页:
谢谢
伊格纳西奥
对于用户BalusC的响应,我附加了屏幕,并通过FullAjaxExceptionHandler收到了相同的结果
我在控制台中看到了这一点,也许您可以使用(这并不反映在视图中):
由于您已经在使用OmniFaces,您是否尝试过使用其
FullAjaxExceptionHandler
和/或FacesceCeptionFilter
?它还从内部打开任何FacesException
和ELException
。我可以回答如何创建一个自定义的,但是如果你已经在使用OmniFaces,那就太麻烦了……我配置了FullAjaxExceptionHandler,收到同样的错误后,我附加了printscreen。乍一看,我认为这只是一个Mojara bug,与嵌套的复合组件结合在一起。我必须先探究它的来源。另一方面,要注意不要“过度使用”复合组件,因为与标记文件相比,复合组件的配置性质为零。另请参阅此相关答案和其中的链接:您查看了我最后一篇关于此的帖子:dic 232014 3:45:06 PM com.sun.faces.facelets.el.contextalCompositeMethodExpression invoke ADVERTENCIA:jsf.facelets.el.method.expression.invoke.error:javax.el.ELException:java.lang.NullPointerException dic 23,2014年3:45:06 PM com.sun.faces.lifecycle.InvokeApplicationPhase执行
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:templates="http://java.sun.com/jsf/composite/templates">
<ui:composition template="/templates/TemplateABM.xhtml">
<ui:define name="title">
#{msgs['producto.abm.alta.pagina.titulo']}
</ui:define>
<ui:define name="top">
<h1>#{msgs['producto.abm.alta.titulo']}</h1>
</ui:define>
<ui:define name="content">
<templates:productos id="templateProductos"
page="alta"
disableComponents="false"
btnAccionText="#{msgs['comun.abm.boton.guardar']}"
btnAccion="#{productoController.alta()}"
/>
</ui:define>
</ui:composition>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:o="http://omnifaces.org/ui"
xmlns:composite="http://java.sun.com/jsf/composite"
xmlns:templates="http://java.sun.com/jsf/composite/templates"
>
<!-- INTERFACE -->
<composite:interface>
<composite:attribute name="page" required="true" />
<composite:attribute name="btnAccionText" required="true" />
<composite:attribute name="btnAccion" method-signature="java.lang.String action()" required="true" />
<composite:attribute name="disableComponents" required="true" />
</composite:interface>
<!-- IMPLEMENTATION -->
<composite:implementation>
<f:metadata>
<f:event type="preRenderView" listener="{productoController.iniciarConversacion}" />
</f:metadata>
<h:form id="formABMProducto">
<templates:botonera id="templateBotonera"
margen="8%"
page="#{cc.attrs.page}"
btnAccionText="#{cc.attrs.btnAccionText}"
btnAccion="#{cc.attrs.btnAccion}"
/>
</h:form>
</composite:implementation>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:o="http://omnifaces.org/ui"
xmlns:composite="http://java.sun.com/jsf/composite">
<!-- INTERFACE -->
<composite:interface>
<composite:attribute name="margen" required="true" />
<composite:attribute name="page" required="true" />
<composite:attribute name="btnAccionText" required="false" />
<composite:attribute name="btnAccion" method-signature="java.lang.String action()" required="false" />
<composite:attribute name="btnExportar" method-signature="java.lang.String action()" required="false" />
<composite:attribute name="disabled" required="false" />
<composite:attribute name="execute" required="false" />
<composite:attribute name="oncompleteValue" required="false" />
<composite:attribute name="deshabilitarBotonAccion" required="false" />
<composite:attribute name="habilitarBotonSeguir" required="false" />
<composite:attribute name="habilitarBotonExportar" required="false" />
</composite:interface>
<!-- IMPLEMENTATION -->
<composite:implementation>
<div id="botonera">
<a4j:commandButton
id="btnAccion"
value="#{cc.attrs.btnAccionText}"
action="#{cc.attrs.btnAccion}"
disabled="#{cc.attrs.disabled}"
execute="#{cc.attrs.execute}"
render="@form"
oncomplete="#{cc.attrs.oncompleteValue}"
rendered="#{!cc.attrs.deshabilitarBotonAccion}"
style="margin:0px #{cc.attrs.margen};" />
<h:commandButton
id="btnSeguir"
value="#{msgs['comun.abm.boton.seguir']}"
action="/abm/servicios/alta"
immediate="true"
disabled="#{titularController.deshabilitarBotonSeguir}"
rendered="#{cc.attrs.page eq 'alta' and cc.attrs.habilitarBotonSeguir}" style="margin:0px #{cc.attrs.margen};"/>
<a4j:commandButton
id="btnExportar"
value="#{msgs['facturacion.abm.generacion.padron.boton.exportar']}"
action="#{cc.attrs.btnExportar}"
execute="#{cc.attrs.execute}"
render="@form"
rendered="#{cc.attrs.habilitarBotonExportar}"
style="margin:0px #{cc.attrs.margen};" />
<h:commandButton
id="btnCancelar"
action="#{commonController.reset(cc.attrs.page)}"
immediate="true"
value="#{msgs['comun.abm.boton.cancelar']}"
style="margin:0px #{cc.attrs.margen};" />
<h:commandButton
id="btnAyuda"
value="#{msgs['comun.abm.boton.ayuda']}"
style="margin:0px #{cc.attrs.margen};" />
<a4j:commandButton
id="btnSalir"
value="#{msgs['comun.abm.boton.salir']}"
onclick="#{rich:component('popupConfirmacionSalida')}.show();"
style="margin:0px #{cc.attrs.margen};"
immediate="true" />
</div>
<ui:include src="/templates/common/popup_salida.xhtml" />
</composite:implementation>
</html>
GRAVE: javax.faces.el.MethodNotFoundException: javax.el.MethodNotFoundException: Método no hallado: com.sun.faces.el.CompositeComponentAttributesELResolver$ExpressionEvalMap@33704fed.btnAccion()
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:91)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:101)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:786)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1251)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at ar.com.filter.HibernateSessionRequestFilter.doFilter(HibernateSessionRequestFilter.java:35)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: javax.el.MethodNotFoundException: Método no hallado: com.sun.faces.el.CompositeComponentAttributesELResolver$ExpressionEvalMap@33704fed.btnAccion()
at org.apache.el.util.ReflectionUtil.getMethod(ReflectionUtil.java:259)
at org.apache.el.parser.AstValue.invoke(AstValue.java:271)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:273)
at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40)
at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
at com.sun.faces.facelets.el.ContextualCompositeMethodExpression.invoke(ContextualCompositeMethodExpression.java:187)
at com.sun.faces.facelets.tag.TagAttributeImpl$AttributeLookupMethodExpression.invoke(TagAttributeImpl.java:450)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
dic 23, 2014 3:45:06 PM com.sun.faces.facelets.el.ContextualCompositeMethodExpression invoke
ADVERTENCIA: jsf.facelets.el.method.expression.invoke.error:javax.el.ELException: java.lang.NullPointerException
dic 23, 2014 3:45:06 PM com.sun.faces.lifecycle.InvokeApplicationPhase execute