从另一个EAR访问本地会话Bean?
|
如何从另一个EAR调用EAR中的Local Session Bean
部署在同一Glassfish v3域中?
结构如下:
Glassfish v3 Domain1
EAR1
EAR1-EJB.jar
class TestSessionBean <-- @Stateless
common.jar
interface TestSessionLocal <-- @Local
EAR2
EAR2-EJB.jar
class TestSessionBeanClient <-- @Singleton, @LocalBean
common.jar
interface TestSessionLocal <-- @Local
TestSessionBean实现TestSessionLocal,两个EAR都具有common.jar。
我需要使用TestSessionBeanClient中的TestSessionBean。我想拿
由于性能,本地会话bean的优势。
我知道我不能在TestSessionBeanClient中使用简单的@EJB调用,所以我尝试了
像这样查找:
InitialContext ic = new InitialContext();
TestSessionLocal tsl = ic.lookup(\"java:global/EAR1/EAR1-EJB/TestSessionBean!org.test.TestSessionLocal\");
这将引发ClassCastException,因为返回的对象将不会
TestSessionLocal但是一个代理类,例如:
TestSessionLocal_1389930137
为了能够调用其方法,我必须进行反射以找到其方法。
请帮忙。
先感谢您。
没有找到相关结果
已邀请:
3 个回复
凰葱崎济邯
泉秘胁
蔬谢窗港
经过一些测试,似乎没有已知证书的客户端无法访问EJB。其他EAR无需任何身份验证即可访问此EJB。 编辑:我尝试了ClassLoader解决方案,但对我的项目不可行