EJB: Funcionando no JBoss e erros no Glassfish

Fala feras :smiley:

Tenho uma aplicação que decidiram rodar no glassfish mas foi desenvolvida sobre jboss e agora que fiz o deploy no glassfish, a aplicacao nao consegue achar meus EJBs. Eu tive que mudar tudo que era @Local para @Remote e ainda continua com um novo erro:

E no Jboss tudo funciona corretamente, meus mapeamento foram feitos:

jboss.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS 4.0//EN"  "http://www.jboss.org/j2ee/dtd/jboss_4_0.dtd">
<jboss>
	<enterprise-beans>
		<session>
			<ejb-name>LoginServiceImpl</ejb-name>
			<jndi-name>ejb/LoginServiceImpl</jndi-name>
		</session>
....

Delegate.java

	protected LoginService getLoginService(){
		ServiceLocator serviceLocator = ServiceLocatorImpl.getInstance();
		try {
			loginService = serviceLocator.lookup(LoginService.class);
		} catch (NamingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return loginService;
	}

ServiceLocatorImpl.java

public class ServiceLocatorImpl implements ServiceLocator{
	
    private static ServiceLocatorImpl service;
    private InitialContext jndiContext;
    private Map<String,Object> cache;
    private NameResolver nameResolver;
   
    private ServiceLocatorImpl() {
        try {           
            jndiContext = new InitialContext();
            final Map<String, Object> cRef = new HashMap<String, Object>();
            cache = Collections.synchronizedMap(cRef);           
            nameResolver = new JBossNameResolver();           
                       
        } catch (NamingException ne) {
            throw new RuntimeException(ne);
        }
    }
    
    public static ServiceLocator getInstance(){
        if (service == null) {
            service = new ServiceLocatorImpl();
        }
        return service;
    }
    
    @SuppressWarnings("unchecked")
	public <E> E lookup(String jndiName) throws NamingException {       
        E retorno = null; 
        Object objeto = cache.get(jndiName);
        if(objeto == null){
            objeto = lookupIntialContext(jndiName);
            if(objeto != null){
                cache.put(jndiName, objeto);
                retorno = (E) objeto;
            }
        }else{
            retorno = (E) objeto;
        }
        return retorno;
    }
    
    
    public <E> E lookup(Class<E> classe) throws NamingException {
        String jndiName = nameResolver.resolveNomeEjbRemoto(classe);       
        return lookup(jndiName);
       
    }
    
    @SuppressWarnings("unchecked")
	private <E> E lookupIntialContext(String jndiName) throws NamingException{
        return (E) jndiContext.lookup(jndiName);
    }

Nao sei mais o que fazer para isso funcionar no Glassfish. Alguem tem alguma ideia?

Valeu

Em primeiro lugar o glassfish não vai interpretar o seu arquivo jboss.xml. No glassfish as configuraçoes ficam no ejb.xml e sun-ejb.xml. No Glassfish vc pode utilizar a anotação @EJB para injetar a depedência, no lugar de usar JNDI. Se vc usar as anotações disponíveis, praticamente não precisará configurar nada nos XMLs.