6 Replies Latest reply: Apr 29, 2011 3:20 PM by Ben Software Engineer RSS

No component found to process as 'ajaxSingle'

Bob Muller Novice

A user is having an intermittent problem with a modal panel that has a data table, a done button, a delete button on each table row, and a close X icon in the header. The panel essentially stopped responding; clicking on the buttons did nothing. The user closed the page, logged out and in, and resumed with no problems. Here's what happened in the server log:

 

 

2010-04-29 14:35:56,053 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-8) No component found to process as 'ajaxSingle' for clientId j_id162:doneExpression
2010-04-29 14:35:56,100 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-8) No component found to process as 'ajaxSingle' for clientId j_id162:doneExpression
2010-04-29 14:35:56,100 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-8) No component found to process as 'ajaxSingle' for clientId j_id162:doneExpression
2010-04-29 14:35:59,682 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-6) No component found to process as 'ajaxSingle' for clientId j_id162:doneExpression
2010-04-29 14:35:59,683 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-6) No component found to process as 'ajaxSingle' for clientId j_id162:doneExpression
2010-04-29 14:35:59,683 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-6) No component found to process as 'ajaxSingle' for clientId j_id162:doneExpression
2010-04-29 14:36:27,689 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-4) No component found to process as 'ajaxSingle' for clientId j_id162:expressionTable:0:deleteExpression
2010-04-29 14:36:27,690 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-4) No component found to process as 'ajaxSingle' for clientId j_id162:expressionTable:0:deleteExpression
2010-04-29 14:36:27,690 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-4) No component found to process as 'ajaxSingle' for clientId j_id162:expressionTable:0:deleteExpression
2010-04-29 14:36:28,775 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-4) No component found to process as 'ajaxSingle' for clientId j_id162:expressionTable:0:deleteExpression
2010-04-29 14:36:28,776 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-4) No component found to process as 'ajaxSingle' for clientId j_id162:expressionTable:0:deleteExpression
2010-04-29 14:36:28,777 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-4) No component found to process as 'ajaxSingle' for clientId j_id162:expressionTable:0:deleteExpression
2010-04-29 14:36:29,352 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-4) No component found to process as 'ajaxSingle' for clientId j_id162:expressionTable:0:deleteExpression
2010-04-29 14:36:29,353 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-4) No component found to process as 'ajaxSingle' for clientId j_id162:expressionTable:0:deleteExpression
2010-04-29 14:36:29,354 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-4) No component found to process as 'ajaxSingle' for clientId j_id162:expressionTable:0:deleteExpression
2010-04-29 14:36:29,564 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-4) No component found to process as 'ajaxSingle' for clientId j_id162:expressionTable:0:deleteExpression
2010-04-29 14:36:29,565 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-4) No component found to process as 'ajaxSingle' for clientId j_id162:expressionTable:0:deleteExpression
2010-04-29 14:36:29,566 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-4) No component found to process as 'ajaxSingle' for clientId j_id162:expressionTable:0:deleteExpression
2010-04-29 14:36:35,592 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-6) No component found to process as 'ajaxSingle' for clientId j_id162:expressionTable:0:j_id172
2010-04-29 14:36:35,593 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-6) No component found to process as 'ajaxSingle' for clientId j_id162:expressionTable:0:j_id172
2010-04-29 14:36:35,594 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-6) No component found to process as 'ajaxSingle' for clientId j_id162:expressionTable:0:j_id172
2010-04-29 14:36:37,454 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-6) No component found to process as 'ajaxSingle' for clientId j_id162:expressionTable:0:j_id172
2010-04-29 14:36:37,455 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-6) No component found to process as 'ajaxSingle' for clientId j_id162:expressionTable:0:j_id172
2010-04-29 14:36:37,456 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-6) No component found to process as 'ajaxSingle' for clientId j_id162:expressionTable:0:j_id172
2010-04-29 14:36:38,382 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-6) No component found to process as 'ajaxSingle' for clientId j_id162:expressionTable:0:j_id172
2010-04-29 14:36:38,383 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-6) No component found to process as 'ajaxSingle' for clientId j_id162:expressionTable:0:j_id172
2010-04-29 14:36:38,384 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-6) No component found to process as 'ajaxSingle' for clientId j_id162:expressionTable:0:j_id172
2010-04-29 14:36:39,480 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-6) No component found to process as 'ajaxSingle' for clientId j_id162:expressionTable:0:j_id172
2010-04-29 14:36:39,481 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-6) No component found to process as 'ajaxSingle' for clientId j_id162:expressionTable:0:j_id172
2010-04-29 14:36:39,482 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-6) No component found to process as 'ajaxSingle' for clientId j_id162:expressionTable:0:j_id172
2010-04-29 14:36:40,351 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-6) No component found to process as 'ajaxSingle' for clientId j_id162:expressionTable:0:j_id172
2010-04-29 14:36:40,352 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-6) No component found to process as 'ajaxSingle' for clientId j_id162:expressionTable:0:j_id172
2010-04-29 14:36:40,352 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-6) No component found to process as 'ajaxSingle' for clientId j_id162:expressionTable:0:j_id172
2010-04-29 14:36:41,970 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-6) No component found to process as 'ajaxSingle' for clientId j_id162:expressionTable:0:j_id172
2010-04-29 14:36:41,971 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-6) No component found to process as 'ajaxSingle' for clientId j_id162:expressionTable:0:j_id172
2010-04-29 14:36:41,971 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-6) No component found to process as 'ajaxSingle' for clientId j_id162:expressionTable:0:j_id172
2010-04-29 14:36:42,922 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-6) No component found to process as 'ajaxSingle' for clientId j_id162:doneExpression
2010-04-29 14:36:42,923 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-6) No component found to process as 'ajaxSingle' for clientId j_id162:doneExpression
2010-04-29 14:36:42,923 WARN  [org.ajax4jsf.component.AjaxViewRoot] (ajp-dev.tairgroup.org%2F10.10.10.107-8009-6) No component found to process as 'ajaxSingle' for clientId j_id162:doneExpression

 

 

Here is the modal panel code with the doneExpression and deleteExpression components, which have variations on ajaxSingle:

 

 

                                    <rich:modalPanel
                                        id="componentPanel"
                                        autosized="true">
                                        <f:facet name="header">
                                            <h:outputText
                                                id="componentPanelHeader"
                                                value="Subcellular Localization Annotations" />
                                        </f:facet>
                                        <f:facet name="controls">
                                            <h:graphicImage
                                                value="/i/icon_close.gif"
                                                style="cursor:pointer"
                                                onclick="#{rich:component('componentPanel')}.hide()" />
                                        </f:facet>
                                        <p>
                                            <strong> <h:outputText
                                                    id="componentText"
                                                    value="Annotating locus #{geneSubmission.selectedGene.locus} from article #{geneSubmission.articleId}" />
                                            </strong>
                                        </p>
                                        <h:form>
                                            <rich:dataTable
                                                rows="0"
                                                value="#{geneSubmission.selectedGene.components}"
                                                var="c"
                                                id="componentTable">
                                                <rich:column>
                                                    <f:facet name="header">
                                                        <h:panelGrid
                                                            rowClasses="headerLabel,exampleTableHeader,exampleTableHeader,exampleTableHeader,exampleTableHeader,instructionTableHeader,instructionTableHeader"
                                                            columns="1">
                                                            <h:outputText value="Subcellular Localization" />
                                                            <h:outputText value="Examples:" />
                                                            <h:outputText value="plasma membrane" />
                                                            <h:outputText value="mitochondrion" />
                                                            <h:outputText value="chloroplast thylakoid" />
                                                            <h:outputText
                                                                value="Start typing, then choose from list or add a new term," />
                                                            <h:outputText
                                                                value="then click outside the field to accept the new term." />
                                                        </h:panelGrid>
                                                    </f:facet>
                                                    <h:inputText
                                                        value="#{c.term}"
                                                        size="50"
                                                        id="componentTerm">
                                                    </h:inputText>
                                                    <rich:suggestionbox
                                                        suggestionAction="#{c.suggestComponents}"
                                                        var="cterm"
                                                        for="componentTerm"
                                                        minChars="2"
                                                        ignoreDupResponses="true"
                                                        eventsQueue="componentTermQueue"
                                                        fetchValue="#{cterm.keyword}"
                                                        nothingLabel="Enter new term"
                                                        width="600"
                                                        height="325">
                                                        <h:column>
                                                            <f:facet name="header">Term</f:facet>
                                                            <h:outputText value="#{cterm.keyword}" />
                                                        </h:column>
                                                        <h:column>
                                                            <f:facet name="header">Id</f:facet>
                                                            <h:outputText value="#{cterm.id}" />
                                                        </h:column>
                                                        <h:column>
                                                            <f:facet name="header">Synonym</f:facet>
                                                            <h:outputText value="#{cterm.synonym}" />
                                                        </h:column>
                                                    </rich:suggestionbox>
                                                </rich:column>
                                                <rich:column>
                                                    <f:facet name="header">
                                                        <h:panelGrid
                                                            rowClasses="headerLabel,exampleTableHeader,exampleTableHeader,instructionTableHeader"
                                                            columns="1">
                                                            <h:outputText value="Method" />
                                                            <h:outputText value="Example:" />
                                                            <h:outputText value="localization of GFP/YFP fusion protein" />
                                                            <h:outputText value="Choose a method or enter a new one." />
                                                        </h:panelGrid>
                                                    </f:facet>
                                                    <rich:comboBox
                                                        id="cMethod"
                                                        value="#{c.method}"
                                                        suggestionValues="#{c.componentMethods}"
                                                        defaultLabel="Choose method or enter a new one..."
                                                        enableManualInput="true"
                                                        directInputSuggestions="true"
                                                        width="400" />
                                                </rich:column>
                                                <rich:column>
                                                    <a4j:commandButton
                                                        id="deleteComponent"
                                                        ajaxSingle="true"
                                                        action="#{geneSubmission.selectedGene.deleteComponentAnnotation}"
                                                        reRender="componentTable, componentLink"
                                                        value="Delete">
                                                        <f:setPropertyActionListener
                                                            target="#{geneSubmission.selectedGene.deletedAnnotation}"
                                                            value="#{c}" />
                                                    </a4j:commandButton>
                                                </rich:column>
                                            </rich:dataTable>
                                            <h:panelGrid columns="2">
                                                <a4j:commandButton
                                                    id="doneComponent"
                                                    value="Continue to Next Step"
                                                    type="button"
                                                    oncomplete="#{rich:component('componentPanel')}.hide()"
                                                    reRender="locusTable,submitButton,globalMessages">
                                                    <a4j:support
                                                        ajaxSingle="true"
                                                        event="onclick">
                                                        <f:setPropertyActionListener
                                                            value="#{login.communityId}"
                                                            target="#{geneSubmission.communityId}" />
                                                    </a4j:support>
                                                </a4j:commandButton>
                                                <a4j:commandButton
                                                    id="addComponent"
                                                    value="Add Another Subcellular Localization"
                                                    type="button"
                                                    action="#{geneSubmission.selectedGene.addComponent}"
                                                    reRender="componentTable" />
                                            </h:panelGrid>
                                        </h:form>
                                    </rich:modalPanel>

 

If anyone has any suggestions or guesses for what might be going on here, I'd love to hear it . Does this message mean the component tree no longer has the relevant component in it on the server?

  • 1. Re: No component found to process as 'ajaxSingle'
    Harut Sargsyan Apprentice

    Why you need a4j:support inside the a4j:commandButton (id="doneComponent") ???? You have to remove it...

    If you need to pass any parameter to server use a4j:actionparam instead of <f:setPropertyActionListener value="login.comunityId".....

    Also remove ajasSingle=true from that commandButtons and try again...

  • 2. Re: No component found to process as 'ajaxSingle'
    Bob Muller Novice

    I replaced the non-object uses of setPropertyActionListener with actionparam and eliminated the ajaxSingle settings and everything seems to be working fine, the user reports no additional issues with the form. I left several uses of the listener in place as they were transferring objects rather than basic types.

     

    Thank you!

  • 3. Re: No component found to process as 'ajaxSingle'
    Jesús Salinas Revelles Newbie

    I need more information to know exacty what is happening. But we always find the same problem when we work with paginating table if we include actions inside and we try to manage them in Ajax environments.EjercicioTablasPaginadas05.jpgIn order to optimize sent information to the server, we use actions in this way:

     

    <rich:dataTable value="bean1.modelo" var="f" ...>
         ...
         <rich:column ...>
              <a4j:commandLink id="..." 
                     ...   
                     ajaxSingle="true" 
                     limitToList="true">
    
                   <h:outputText value="#{f.concepto}" />
                        <a4j:actionparam name="concepto" value="#{f.concepto}"
                            assignTo="#{bean1.f.concepto}">
                   </a4j:actionparam>
                   ...
              </a4j:commandLink>
         </rich:column>
         ...
    </rich:dataTable>
    

     

     

    We use attributes ajaxSingle and limitToList to avoid sending unnecessary data.

    At this point, actions don't work anymore and log file shows the message "No component found to process as 'ajaxSingle' ... "

     

    The framework try to say it's not able to find the components, (buttons or links) related to those actions, in the JSF restore phase (JavaServer Faces Lifecycle) and this is the reason why the framework does nothing.

     

    We only have these problems when objects in the model use as id a non numerical field. For instance, if we build a datatable to render Document objects:

     

    ...
    
    public class Document{
    
         // documentCode is the id.
         private String documentCode;
         private String title;
         ...
    
    }
    
    

     

    In these situations, we have to add a new attribute in rich:dataTable:

     

    - rowKeyConverter: JSF standard converter.

     

    public class Conversor implements Converter{
        public Object getAsObject(FacesContext context, 
                      UIComponent component,String value) {
            return value;
        }
        public String getAsString(FacesContext context, 
                  UIComponent component,Object value){        
            return value.toString();
        }
    }
    

     

    faces-config.xml:

     

    <converter>
         <converter-id>converterSample</converter-id>
         <converter-class>
              es.ematiz.conversores.Conversor
         </converter-class>
    </converter>
    
    

     

    The view is:

     

    <rich:dataTable value="bean1.modelo" var="f" 
    
                    rowKeyConverter="converterSample"
                    ... >
         ...
    
         <rich:column ...>
              <a4j:commandLink id="..." 
                     ...   
                     ajaxSingle="true" 
                     limitToList="true">
    
                   <h:outputText value="#{f.concepto}" />
                        <a4j:actionparam name="concepto" value="#{f.concepto}"
                            assignTo="#{bean1.f.concepto}">
                   </a4j:actionparam>
                   ...
              </a4j:commandLink>
         </rich:column>
         ...
    </rich:dataTable>
    

     

    We are posting information related to this subject in http://www.tekuento.net.

  • 4. Re: No component found to process as 'ajaxSingle'
    Ilya Sorokoumov Master

    1) Please rise a new discussion/question

    2) Specify your RF version

    3) Are you sure that you need limitToList attribute? Do you have this problem without limitToList?

  • 5. Re: No component found to process as 'ajaxSingle'
    Jesús Salinas Revelles Newbie

    We're working with RichFaces 3.3.3.Final.

    The problem is not limitToList attribute.

  • 6. No component found to process as 'ajaxSingle'
    Ben Software Engineer Newbie

    Hi, if this helps troubleshoot at all, I'm having the same issue.

    RF 3.3.2

    Jboss 5.0.1

     

    Have a c:forEach looping to create a table, and include a rich:columns for dynamic columns.  Also within the table after the dynamic columns is a regular rich:column with an a4j:commandButton as such

    <rich:column>

                                        <a4j:commandButton ajaxSingle="true"

                                            action="#{actionBean[removeItemMethod]}"

                                            reRender="listTable" >

                                            <f:setPropertyActionListener

                                                target="#{actionBean[selectedIndex]}" value="#{status.index}" />

                                        </a4j:commandButton>

                                    </rich:column>

     

    The status is from the c:forEach varStatus and the target is set dynamically through facelets parameters.  This is used to remove the current List item from the list, then it reRenders the entire table (this column being in that table) and the whole row does get removed on refresh.

     

    This works great,however I sometimes get this issue documented:

    [AjaxViewRoot] No component found to process as 'ajaxSingle' for clientId mainForm:j_id172:j_id631:j_id637

    When I have two of these components on the page at same time and I do a lot of adding and removing of different rows in the two tables.

    This is all within a facelets tag so a developer may include this tag many times within a page.  The funny thing is it sometimes comes up and I will add/remove from the other table and then it will go away, or if I add (which takes no parameter and never breaks) and therefore table gets refreshed, the problem goes away.