Tengo un convertidor de medida para seleccionar un país en un componente SelectOneMenu:JSF 2.0 Converter no trabaja desde separada fichero-jar
del archivo: address.jar
@FacesConverter(value="CountryConverter", forClass=Country.class)
public class CountryConverter implements Converter {
private CountryBean countryBean = CountryBean.getCountryService();
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
return countryBean.find(value);
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
if (value != null)
return ((Country)value).getcc_fips();
else
return null;
}
Y este es el XHTML texto:
del archivo: raíz Proyecto
<h:selectOneMenu id="country" value="#{cc.attrs.addrEntity.country}">
<f:selectItem itemLabel="Please select one..."
noSelectionOption="true" />
<f:selectItems value="#{cc.attrs.addrBean.countries}"
var="model"
itemLabel="#{model.name}"
itemValue="#{model}"
noSelectionValue="“no selection”"/>
<f:converter ConverterId="CountryConverter"/>
</h:selectOneMenu>
Tengo el convertidor en un archivo "address.jar" y cuando intento abrir la página para escribir la dirección, responde "Expression Error: Objeto con el nombre MyCustomCoverter no encontrado".. Incluso cuando copie el convertidor al proyecto donde están los archivos xhtml, entonces funciona bien. ¿Qué puedo hacer para resolver esto?
¿Por qué no funciona desde un archivo jar separado?
Gracias.
Perfecto, funciona muy bien. ¡Gracias!. –
De nada. – BalusC
Un detalle adicional pero importante es que el JAR debe estar en ** lib-directory ** de WAR (aplicación web). Si tiene un EAR con un WAR y el JAR con el convertidor está solo en el EAR pero no en el lib de WAR, JSF no encontrará el convertidor. Ver también [esta respuesta] (http://stackoverflow.com/questions/2987266/why-doesnt-jsf-2-0-ri-mojarra-scan- my-class-annotations) para otra descripción detallada del problema. –