如何在客户端上禁用本地@EJB注释? (GlassFish的)

时间:2010-07-23 01:31:23

标签: java glassfish ejb-3.0

我有一个包含以下内容的ejb3 jar文件:

1)远程接口I1和无状态实现IMPL1(暴露给客户端)

2)本地接口I2和无状态实现IMPL2(在服务器应用程序中本地使用)

IMPL1已获得@EJB注释以注入本地I2(IMPL2)。

当我将ejb3 jar放到客户端并尝试部署客户端应用程序时,它失败并返回错误“无法解析引用未解析的Ejb-Ref”到本地I2,因为显然无法从客户端访问本地I2 ejb。

据我所知,我应该只在客户端的lib中放置远程接口和实体。不是实现IMPL1,因为它会导致问题。 或者,我可以使用I2遥控器,然后客户端成功部署。但是我不希望暴露I2并希望通过“引用”从本地bean获取响应。

问题是我无法将项目拆分为两部分(客户端+服务器),因此我将整个ejb jar放到客户端的lib中。

是否可以在客户端上禁用IMPL1中的本地@EJB(以某种方式在web.xml中)?

提前致谢, 安东

1 个答案:

答案 0 :(得分:0)

您可以从Glassfish FAQ的SE客户端找到有关执行EJB远程查找和调用的说明。虽然它适用于Java EE 5 / EJB 3.0,但它也适用于Java EE 6 / EJB 3.1。