Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 错误包装异常焊缝2.2.8_Jsf_Jsf 2 - Fatal编程技术网

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
问题是,当我开始使用Facelets模板时,会抛出一个异常,在这种情况下,显然是NullPointerException,但如果您看到stacktrace正在将异常包装到另一个异常中,我看不到问题的真正原因,即原始异常。重要的是要说,如果我来的NPE代码工作完美。任何导致问题的想法,Facelets、JSF或Weld。这种情况无一例外

我有这样的结构:

控制器

@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