如何跨安装在同一WebSphere Application Server上的应用程序共享EJB本地接口?

时间:2012-08-08 19:43:57

标签: java ejb websphere local

我遇到了WebSphere Application Server 7的问题。我在WAS A& A上安装了2个应用程序。 B. 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&通过将服务器的类加载器设置从多个更改为单个,我能够使转换成功。

问:我真的不喜欢为我的服务器上的所有应用程序安装一个类加载器的想法 - 是否有另一种方法可以在应用程序A和A之间共享EJB本地接口。乙

1 个答案:

答案 0 :(得分:1)

请参阅信息中心EJB modules模块的“本地客户端视图”部分(我已链接到8.5信息中心,但建议适用于所有版本)。基本上,为了共享本地接口,您必须确保两个应用程序都具有相同类的视图。最常见的方法是使用与服务器相关的共享库。请仔细注意跨应用程序共享本地EJB的其他注意事项。