如何配置一个EJB的本地和远程的WebSphere

我有一个无状态EJB会话Bean与bith @Local和@Remote注释。 该代码工作正常在WebLogic Server中。 然而在它部署到WebSphere它提供以下异常。

bm.ejs.container.EJBConfigurationException:BUSINESS_INTERFACE_DESIGNATED_AS_BOTH_REMOTE_AND_LOCAL:“oracle.odc.session.ODCSession”

该oracle.odc.session.ODCSession业务接口类不能既远程和本地。

有任何解决方法可用,使其无需编写单独的EJB远程和本地调用工作?

--------------解决方案-------------

一个解决办法是有方法的声明基本接口&然后要有一个本地接口和一个远程inteface,其扩展底座接口,如:

public interface MyEJBBase {
public void foo();
public void bar();
}

@local
public interface MyEJBLocal extends MyEJBBase {}

@remote
public interface MyEJBRemote extends MyEJBBase {}

AFAIK没有办法,错误似乎很描述。

从EJB 3.2规范的第4.9.7:

同一个业务接口不能同时本地和bean的远程业务接口。

您可以使用子接口作为一种解决方法:

public interface MyInterface { /* all the methods */ }
public interface MyRemoteInterface extends MyInterface { /* empty */ }

@Stateless
@Remote(MyRemoteInterface.class)
@Local(MyInterface.class)
public class MyBean { /* ... */ }

需要注意的是参数的远程接口的方法的返回值将传递按值,但参数和返回的本地接口的方法值将传递按引用。

分类:websphere的 时间:2015-03-15 人气:0
本文关键词: WebSphere中,websphere的7
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.244 (s). 10 q(s)