我有一个包含以下内容的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中)?
提前致谢, 安东
答案 0 :(得分:0)
您可以从Glassfish FAQ的SE客户端找到有关执行EJB远程查找和调用的说明。虽然它适用于Java EE 5 / EJB 3.0,但它也适用于Java EE 6 / EJB 3.1。