我在使用 WebSphere Application Server 7 时遇到问题。我在 WAS A 和 B 上安装了 2 个应用程序。B 想要使用 A 的本地 EJB 接口。
包含本地 EJB 接口的模块是 A 的 EAR 的一部分。
我尝试做的是在我的 B 部署中包含对模块的引用。我发现的问题是,在查找界面时:
InitialContext ic = new InitialContext();
//succeeds
Object obj = ic.lookup("ejblocal:sample.MyEJBLocal");
//fails with ClassCastException
MyEJBLocal localBean = (MyEJBLocal) obj;
程序崩溃是因为接口的类名前面有随机字母,例如
Cannot cast type SL07SMyEJBLocal to MyEJBLocal these types are incompatible.
我尝试使用 WAS 并且通过将服务器的类加载器设置从多个更改为单个,我能够使演员成功。
问 - 我真的不喜欢为我的服务器上的所有应用程序使用一个类加载器的想法 - 是否有另一种方法可以让 EJB 本地接口在应用程序 A 和 B 之间共享?