Estou utilizando o componente listShuttle que necessita de um convert. Onde o mesmo tem fazer um pesquisa no banco, não estou conseguindo pois o ejb fica fica nulo, estive lendo nos foruns o EJB tem limitações no Convert, não sei de confere esta informação.
public class ListShuttlePedidoRenovacaoMatriculaConverter implements Converter {
@EJBprivateIManterDescricaoCriterioClassificacaoEJBejb;publicListShuttlePedidoRenovacaoMatriculaConverter(){}publicObjectgetAsObject(FacesContextfacesContext,UIComponentuIComponent,StringvalorTela){if(valorTela==null)returnnull;Longid=newLong(valorTela);System.out.println("Getasobject >>> Lista Target -->"+id);DescricaoCriterioClassificacaodescricaoCriterioClassificacao=newDescricaoCriterioClassificacao();try{descricaoCriterioClassificacao=*ejb*.consultarPorId(id);}catch(NegocioExceptione){e.printStackTrace();}System.out.println("descricao"+descricaoCriterioClassificacao.getDescricao());returndescricaoCriterioClassificacao;}publicStringgetAsString(FacesContextfacesContext,UIComponentuIComponent,ObjectobjetoTela){HtmlListShuttletmp=(HtmlListShuttle)uIComponent;ObjecttList=tmp.getTargetValue();ObjectsList=tmp.getSourceValue();System.out.println("String de busca-->"+sList);System.out.println("Lista Target -->"+tList);DescricaoCriterioClassificacaodescricaoCriterioClassificacao=(DescricaoCriterioClassificacao)objetoTela;returndescricaoCriterioClassificacao.getId().toString();}
importboundary.MedicaoReferenciaFacade;importentities.MedicaoReferencia;importjava.util.logging.Level;importjava.util.logging.Logger;importjavax.faces.component.UIComponent;importjavax.faces.context.FacesContext;importjavax.faces.convert.Converter;importjavax.faces.convert.ConverterException;importjavax.faces.convert.FacesConverter;importjavax.naming.Context;importjavax.naming.InitialContext;importjavax.naming.NamingException;@FacesConverter(value="converterMedicaoReferencia",forClass=MedicaoReferencia.class)publicclassMedicaoReferenciaConverterimplementsConverter{MedicaoReferenciaFacademedicaoReferenciaFacade=lookupMedicaoReferenciaFacadeBean();@OverridepublicObjectgetAsObject(FacesContextcontext,UIComponentcomponente,Stringvalue){try{if(value==null||value.equalsIgnoreCase("-1"))returnnull;intid=Integer.parseInt(value);returnmedicaoReferenciaFacade.find(id);}catch(NumberFormatExceptionne){thrownewConverterException("Não foi possível converter ("+value+") para MediçãoReferencia: não é um número inteiro.",ne);}catch(IllegalArgumentExceptione){thrownewConverterException("Não foi possível converter ("+value+") para MediçãoReferencia: identificador desconhecido.",e);}}@OverridepublicStringgetAsString(FacesContextcontext,UIComponentcomponent,Objectvalue){if(value==null){returnnull;}if(valueinstanceofMedicaoReferencia){MedicaoReferenciaaux=(MedicaoReferencia)value;returnaux.getCodMedicaoReferencia().toString();}elseif(valueinstanceofString&&((String)value).equalsIgnoreCase("-1")){return"-1";}else{thrownewConverterException("("+value.getClass()+") não é uma instância.");}}privateMedicaoReferenciaFacadelookupMedicaoReferenciaFacadeBean(){try{Contextc=newInitialContext();return(MedicaoReferenciaFacade)c.lookup("java:global/gsmApp/MedicaoReferenciaFacade!boundary.MedicaoReferenciaFacade");//return (MedicaoReferenciaFacade) c.lookup(MedicaoReferenciaFacade.class.getName())}catch(NamingExceptionne){Logger.getLogger(getClass().getName()).log(Level.SEVERE,"exception caught",ne);thrownewRuntimeException(ne);}}}