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)