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

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

     [ https://issues.apache.org/jira/browse/MYFACES-4340?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Thomas Andraschko resolved MYFACES-4340.
----------------------------------------
    Resolution: Fixed

> 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
>            Priority: Major
>             Fix For: 2.3-next-M3
>
>
> 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)