Fala feras
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