Je courais une ancienne version de omnifaces - 1.8.3, maintenant je mis à jour à la dernière 2.6.3 et je reçois une exception assez bizarre quand j'essaie de me connecter . Le problème est que je ne sais vraiment pas comment déboguer correctement un JSF .xthmljar omnifaces, maintenant il dit que mes convertisseurs sont ambigus
Exception Je reçois:
2017-07-10T16:32:46.631+0300|Warning: StandardWrapperValve[Faces Servlet]: Servlet.service() for servlet Faces Servlet threw exception
org.jboss.weld.exceptions.AmbiguousResolutionException: WELD-001318: Cannot resolve an ambiguous dependency between:
- Managed Bean [class kamelon.ui.convertors.LoginConverter] with qualifiers [@Any @Default],
- Managed Bean [class kamelon.ui.convertors.IdentityHashCodeConverter] with qualifiers [@Any @Default],
- Managed Bean [class kamelon.ui.convertors.IdentifiableConvertor] with qualifiers [@Any @Default]
at org.jboss.weld.manager.BeanManagerImpl.resolve(BeanManagerImpl.java:1235)
at org.jboss.weld.util.ForwardingBeanManager.resolve(ForwardingBeanManager.java:91)
at org.jboss.weld.bean.builtin.BeanManagerProxy.resolve(BeanManagerProxy.java:115)
at org.omnifaces.util.BeansLocal.resolve(BeansLocal.java:77)
at org.omnifaces.cdi.converter.ConverterManager.createConverter(ConverterManager.java:122)
at org.omnifaces.cdi.converter.ConverterManager$Proxy$_$$_WeldClientProxy.createConverter(Unknown Source)
at org.omnifaces.application.OmniApplication.createConverter(OmniApplication.java:82)
at com.sun.faces.facelets.tag.jsf.ValueHolderRule$LiteralConverterMetadata.applyMetadata(ValueHolderRule.java:85)
at com.sun.faces.facelets.tag.MetadataImpl.applyMetadata(MetadataImpl.java:81)
at javax.faces.view.facelets.MetaTagHandler.setAttributes(MetaTagHandler.java:129)
at javax.faces.view.facelets.DelegatingMetaTagHandler.setAttributes(DelegatingMetaTagHandler.java:102)
at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.doNewComponentActions(ComponentTagHandlerDelegateImpl.java:491)
....
J'ai indiqué < p: (composant)> < f: convertisseur> </p: (composant)> dans de nombreux fichiers et je ne sais pas si je devrais les changer en < p: (component) converter = "" /> maintenant ou si je devrais ajouter plus (et où?) pour la nouvelle version.
Je ne sais pas quel est le problème avec la nouvelle version, quelqu'un peut-il aider?
Merci d'avance!
Avez-vous le même problème avec des composants JSF simples? Et ce n'est pas un problème xhtml mais un bean. Avez-vous par hasard injecter des interfaces spmewhere? – Kukeltje
Mettez '@ Specializes' sur les sous-classes de convertisseur qui étend un autre convertisseur et réessayez (voir aussi http://showcase.omnifaces.org/cdi/FacesConverter). Si cela échoue encore, parlez plus sur les versions serveur/JSF/CDI utilisées. – BalusC
Je l'ai réparé et posté la solution ci-dessous, merci pour l'aide! –