You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Jan Krpata (Jira)" <de...@myfaces.apache.org> on 2020/06/16 20:32:00 UTC

[jira] [Created] (MYFACES-4340) Managed converter can not be injected into other CDI bean

Jan Krpata created MYFACES-4340:
-----------------------------------

             Summary: Managed converter can not be injected into other CDI bean
                 Key: MYFACES-4340
                 URL: https://issues.apache.org/jira/browse/MYFACES-4340
             Project: MyFaces Core
          Issue Type: Bug
    Affects Versions: 2.3.6
            Reporter: Jan Krpata


If CDI bean injects a managed converter with @FacesConverter @Qualifier, AmbiguousResolutionException will be thrown

 
{code:java}
org.apache.webbeans.exception.WebBeansDeploymentException: javax.enterprise.inject.AmbiguousResolutionException: There is more than one Bean with type cz.krpata.jsf23.UserConverter Qualifiers: [@javax.faces.convert.FacesConverter(value=, forClass=class cz.krpata.jsf23.User, managed=true)]
for injection into Field Injection Point, field name :  userConverter, Bean Owner : [InjectConverterIntoBean, WebBeansType:MANAGED, Name:injectConverterIntoBean, API Types:[cz.krpata.jsf23.InjectConverterIntoBean,java.lang.Object], Qualifiers:[javax.enterprise.inject.Default,javax.enterprise.inject.Any,javax.inject.Named]]
found beans: 
UserConverter, WebBeansType:THIRDPARTY, Name:null, API Types:[cz.krpata.jsf23.UserConverter,java.lang.Object], Qualifiers:[javax.enterprise.inject.Any,javax.faces.convert.FacesConverter] from file:/C:/Users/krpata/eclipse-2020-03-workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp4/wtpwebapps/PFCsvTest-myfaces/WEB-INF/classes/cz/krpata/jsf23/UserConverter.class
UserConverter, WebBeansType:MANAGED, Name:null, API Types:[cz.krpata.jsf23.UserConverter,java.lang.Object,javax.faces.convert.Converter<cz.krpata.jsf23.User>], Qualifiers:[javax.enterprise.inject.Any,javax.faces.convert.FacesConverter] from file:/C:/Users/krpata/eclipse-2020-03-workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp4/wtpwebapps/PFCsvTest-myfaces/WEB-INF/classes/cz/krpata/jsf23/UserConverter.class

{code}
 

Dependencies:
 * MyFaces 2.3.6
 * CDI (OWB) 2.0.14

Classes:

 
{code:java}
@FacesConverter(forClass=User.class, managed = true)
public class UserConverter implements Converter<User> {	@Inject
	private UserDAO userDAO;
	
	@Override
	public User getAsObject(final FacesContext facesContext, final UIComponent uiComponent, final String name) {
		return userDAO.getUserByName(name);
	}

	@Override
	public String getAsString(final FacesContext facesContext, final UIComponent uiComponent, final User user) {
		return user.getFirstname() + " " + user.getSurname();
	}
}
{code}
{code:java}
@RequestScoped
@Named
public class InjectConverterIntoBean {
	
	@Inject
	@FacesConverter(forClass=User.class, managed = true)
	private UserConverter userConverter;

        ...	
}
{code}
 

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)