2 votes

Le avertissement de "Impossible d'enregistrer l'action dynamique avec l'identifiant client 'j_idX' car le composant UIComponent ne peut pas être trouvé" se produit en utilisant CombinedResou

Je reçois les avertissements ci-dessous une fois, lorsque je soumets et met à jour="@form".

14:03:23,139 AVERTISSEMENT [javax.enterprise.resource.webcontainer.jsf.application.view] (default task-27) Impossible de sauvegarder l'action dynamique avec l'identifiant client 'j_id2' car le composant UIComponent ne peut pas être trouvé
14:03:23,139 AVERTISSEMENT [javax.enterprise.resource.webcontainer.jsf.application.view] (default task-27) Impossible de sauvegarder l'action dynamique avec l'identifiant client 'j_id3' car le composant UIComponent ne peut pas être trouvé

Mais en supprimant "org.omnifaces.resourcehandler.CombinedResourceHandler" de faces-config.xml, les avertissements ne sont plus présents.

L'environnement de développement est...

  • Primefaces 7.0
  • Omnifaces 3.4
  • WildFly 16.0.0.Final

Voici un exemple minimal. (mais mon code de production est plus complexe, donc de nombreux avertissements sont générés (entre 20 et 1000)).

index.xhtml

IndexView.java

package com.sample.primafaces_operation_verification;

import javax.faces.view.ViewScoped;
import // omitted // ;

@Named
@ViewScoped
public class IndexView implements Serializable {

    @Getter
    private List itemCandidates;

    @Getter @Setter
    private String selectOne;

    public void init() {
        this.itemCandidates = List.of("aaa", "bbb", "ccc", "ddd");
    }

    public void submit() {
        Messages.addGlobalInfo("Item sélectionné : {0}", selectOne);
    }
}

faces-config.xml

        org.omnifaces.resourcehandler.CombinedResourceHandler
        org.primefaces.application.DialogActionListener
        org.primefaces.application.DialogNavigationHandler
        org.primefaces.application.DialogViewHandler

web.xml

        javax.faces.PROJECT_STAGE
        Development

        javax.faces.FACELETS_REFRESH_PERIOD
        0

        primefaces.CLIENT_SIDE_VALIDATION
        true

        primefaces.FONT_AWESOME
        true

        primefaces.MOVE_SCRIPTS_TO_BOTTOM
        true

        javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL
        true

        com.sun.faces.numberOfLogicalViews
        6

        com.sun.faces.numberOfViewsInSession
        6

        org.omnifaces.VIEW_SCOPE_MANAGER_MAX_ACTIVE_VIEW_SCOPES
        6

        Faces Servlet
        javax.faces.webapp.FacesServlet
        1

        Faces Servlet
        *.faces

        index.faces

Je m'attends à ne pas recevoir les avertissements. Comment puis-je les corriger ?

1 votes

Pouvez-vous essayer 3.4.1-SNAPSHOT pour voir si c'est corrigé pour vous?

1 votes

@BalusC Merci de l'avoir corrigé. J'ai essayé 3.4.1-SNAPSHOT, j'ai pu confirmer que l'avertissement a disparu. Je pense que ce problème (github.com/omnifaces/omnifaces/issues/527) peut être fermé.

5voto

Selaron Points 5617

J'ai trouvé plusieurs références à cet avertissement mais pas de doublon sur SO qui vaudrait la peine de voter pour fermer votre question en tant que doublon, donc je vais essayer de répondre par des citations :

PrimeFaces formulaire imbriqué dans p:dialog avec appendTo="@(body)

Michele Mariotti dit :

Ces avertissements, selon mes expériences, sont inoffensifs et peuvent être ignorés en toute sécurité. Cependant, j'ai ouvert une requête de pull pour éventuellement le corriger.


BootsFaces problème 325 Incapable de sauvegarder l'action dynamique avec l'ID client 'j_id...'

stephanrauh a commenté le 22 mars 2016

C'est un avertissement, pas une erreur. Dès que vous définissez le ProjectStage sur production, l'avertissement disparaît. Je considère donc cela comme un problème mineur, pas une erreur grave. Dans tous les cas, recevez-vous l'avertissement sans utiliser OmniFaces ?

stephanrauh a commenté le 22 mars 2016

Peu probable. L'avertissement se produit lorsque vous manipulez l'arborescence DOM de JSF en utilisant le mauvais API. Par exemple, en enlevant un fichier de ressource en le supprimant simplement de la liste. C'est ce qu'OmniFaces avait l'habitude de faire dans une version précédente. JSF détecte qu'il manque quelque chose, devient nerveux et réagit en omettant ces avertissements déroutants. Il est possible que BootsFaces utilise l'API "interdite", mais je pense l'avoir corrigé. Dans tous les cas, pouvez-vous télécharger un projet simple qui reproduit l'avertissement? Cela faciliterait grandement notre travail.


En conclusion l'avertissement est déclenché par org.omnifaces.resourcehandler.CombinedResourceHandler en enlevant les ressources de la vue qui en font partie de sa fonctionnalité principale. Essayez de définir javax.faces.PROJECT_STAGE sur Production et ignorez l'avertissement pendant la codification.

0 votes

Merci pour votre réponse. Je vais ignorer pendant le développement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X