iteye_13917 2010-04-18 22:07
浏览 273
已采纳

EJB入门问题,远程客户端调用服务器remote和local方法~第一次提问,望高手不吝指教!

我定义了一个接口:
interface ServiceRemote{
remoteMethod();
}
和一个接口
interface ServiceLocal{
localMethod();
}

接着是一个实现类:
@stateless
@Remote({ServiceRemote.class})
@Local({ServiceLocal.class})
public class ServiceImpl() implements ServiceRemote,ServiceLocal{
private String a = "哈哈哈哈";
public void localMethod(){
System.out.println("本地方法"+a);
}
remoteMethod(){
System.out.println("远程方法"+a);
}
}

我现在在远程客户端:把ServiceRemote复制过来(此时它只有一个remoteMethod,跟服务器端一致),并且为它增加了一个localMethod()方法(这一步是为了测试能不能访问本地方法)。

第一次提问,望高手不吝指教!

现在在远程客户端调用的时候发现竟然可以引用localMethod(即可以通过它访问到a字符串)!

按理说,我上面已经定义了ServiceLocal是本地接口了,虽然实现类有它的方法,但是客户端应该也不能直接引用吧?

求教,ejb远程客户端引用的规则!

  • 写回答

4条回答 默认 最新

  • 拽拽的初行者 2010-04-19 20:27
    关注

    [quote]@stateless
    @Remote({ServiceRemote.class})
    @Local({ServiceLocal.class})
    public class ServiceImpl() implements ServiceRemote,ServiceLocal{
    private String a = "哈哈哈哈";
    public void localMethod(){
    System.out.println("本地方法"+a);
    }
    remoteMethod(){
    System.out.println("远程方法"+a);
    }
    } [/quote]

    你的这个ServiceImpl类,可以被远程调用,因为实现了Remote接口。

    而你的通过客户端的存根对象,调用方法时,调用传到了Server端的ServiceImpl,而在ServiceImpl中恰好有 localMethod方法。所以就被调用了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!