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());
        }
    }
}

Reply via email to