使用 java.lang.ClassCastException 调用本地 EJB 方法失败

Call local EJB method failds with java.lang.ClassCastException

我有一个实现以下接口的本地 Ejb class :

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

当我调用 public 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

如果 SaveOrdersResponse 由两个不同的类加载器加载,就会发生这种情况。一次由客户端进行调用,一次由实现返回响应。我会确保两个库都可以访问包含传输对象和 EJB 接口的 jar。不要把它放在那里两次。例如,在 EAR 的 lib 文件夹中是共享库的好地方。