see below...
On Mon, Dec 23, 2013 at 4:53 PM, Howard W. Smith, Jr. < smithh032...@gmail.com> wrote: > > On Mon, Dec 23, 2013 at 4:46 PM, Howard W. Smith, Jr. < > smithh032...@gmail.com> wrote: > >> i do remember a conversation... Romain recommending to use jdni global >> name specified in tomee log @ startup. i don't know if it is will work >> inside @FacesConverter. > > > the following are in my tomee log @ startup for my UsersFacade. evidently, > tomee creates UsersFacadeLocalBean for my app (see 1st line below). some > time ago, when i tested referencing @EJB in @FacesConverter, I think it > worked when i used jndi (global) name as specified in tomee log @ startup > (see below). > > Dec 20, 2013 8:50:56 AM org.apache.openejb.assembler.classic.JndiBuilder > bind > INFO: Jndi(name=UsersFacadeLocalBean) --> Ejb(deployment-id=UsersFacade) > > Dec 20, 2013 8:50:56 AM org.apache.openejb.assembler.classic.JndiBuilder > bind > INFO: Jndi(name=global/webapp/UsersFacade!jpa.session.UsersFacade) --> > Ejb(deployment-id=UsersFacade) > > Dec 20, 2013 8:50:56 AM org.apache.openejb.assembler.classic.JndiBuilder > bind > INFO: Jndi(name=global/webapp/UsersFacade) --> > Ejb(deployment-id=UsersFacade) > > definition of UsersFacade (which was generated by NetBeans from database, years ago...smile). @Stateless public class UsersFacade extends AbstractFacade<Users> { and the abstract class (i'm sure you've seen this, too, if/since you're NetBeans user) public abstract class AbstractFacade<T> { and definition of converter (I am using OmniFaces 1.6+) import javax.ejb.EJB; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.convert.Converter; import javax.faces.convert.FacesConverter; import jpa.entities.Users; @FacesConverter(forClass = Users.class) public class UsersConverter implements Converter { @EJB private jpa.session.UsersFacade ejbFacade; @Override public Object getAsObject(FacesContext facesContext, UIComponent component, String value) { if (value == null || value.length() == 0) { return null; } return ejbFacade.find(value); } @Override public String getAsString(FacesContext facesContext, UIComponent component, Object object) { if (object == null) { return null; } if (object instanceof Users) { Users o = (Users) object; return o.getUserName(); } else { throw new IllegalArgumentException("object " + object + " is of type " + object.getClass().getName() + "; expected type: " + Users.class.getName()); } } }