2015-10-15 1 views
0

j'ai une classe Ejb locale qui implémente l'interface suivante:appeler la méthode EJB locale failds avec java.lang.ClassCastException

public interface LocalEjbService { 
    public String saveOrders(String request); 
    public SaveOrdersResponse saveOrders(Integer request); 
} 

quand j'appelle cordes saveOrders publiques (demande String) tout va bien. et la réponse est retournée sans exception, mais quand je l'ai essayé d'appeler la deuxième méthode, l'appel est va bien, mais lorsque la méthode est renvoyée EjbResponse une exception est de retour au client ejb comme suit

java.lang.ClassCastException: com.thegroup.common.beans.ejb.response.oms.SaveOrdersResponse cannot be cast to com.thegroup.common.beans.ejb.response.oms.SaveOrdersResponse 

Répondre

0

Cela peut se produire si SaveOrdersResponse est chargé par deux chargeurs de classe différents. Une fois par le client faisant l'appel, et une fois par l'implémentation retournant la réponse. Je m'assurerais que le jar qui contient les objets de transfert et les interfaces EJB est accessible aux deux bibliothèques. Ne le mettez pas là deux fois. Par exemple, dans le dossier lib de l'EAR est un bon endroit pour les bibliothèques partagées comme ça.