Вызов локального метода EJB завершается неудачно с java.lang.ClassCastException
У меня есть класс Local Ejb, который реализует следующий интерфейс:
public interface LocalEjbService {
public String saveOrders(String request);
public SaveOrdersResponse saveOrders(Integer request);
}
когда я вызываю публичный метод String saveOrders(String request), все идет хорошо. и ответ возвращается без исключений, но когда я попытался вызвать второй метод, вызов проходит нормально, но когда возвращается метод EjbResponse, исключение возвращается клиенту ejb, как показано ниже
java.lang.ClassCastException: com.thegroup.common.beans.ejb.response.oms.SaveOrdersResponse cannot be cast to com.thegroup.common.beans.ejb.response.oms.SaveOrdersResponse
1 ответ
Решение
Это может произойти, если SaveOrdersResponse загружен двумя разными загрузчиками классов. Один раз клиент делает вызов, и один раз реализация возвращает ответ. Я хотел бы убедиться, что jar, который содержит объекты переноса и интерфейсы EJB, доступен для обеих библиотек. Не кладите это туда дважды. Например, в папке lib EAR есть отличное место для таких общих библиотек, как эта.