wayne

EJB3 (2)

一个会话bean即可以远程访问,也可以本地访问,尽管这种现象不常见。
我们先定义远程接口:

@Remote
public interface HelloRemote {

    String sayHi(String name);

    String sayByeBye(String name);
    
}

接着定义本地接口:
@Local
public interface HelloLocal {

    String sayBye(String name);
    
}

然后编写一个会话bean同时实现两个接口:
@Stateless
public class HelloBean implements HelloRemote, HelloLocal {

    
public String sayHi(String name) {
        
return "Hi " + name;
    }

    
    
public String sayBye(String name) {
        
return "Bye " + name;
    }

    
    
public String sayByeBye(String name) {
        
return sayBye(name);
    }

    
}

那么,这还是一个无状态会话bean,不过即可以远程访问,也可以本地访问。
<%
            InitialContext ctx 
= new InitialContext();
            HelloRemote helloBean 
= (HelloRemote)ctx.lookup(HelloRemote.class.getName());
            out.println(helloBean.sayHi(
"Tom"));
            out.println(
"<br>" + helloBean.sayByeBye("Tom"));
%>

远程访问只能获得远程接口的代理,然后调用远程业务方法。在远程客户端是无法获得本地接口的引用,更别说访问本地方法了。

posted on 2008-09-12 21:29 waynemao 阅读(132) 评论(0)  编辑  收藏 所属分类: Java ee


只有注册用户登录后才能发表评论。


网站导航:
 

My Links

Blog Stats

常用链接

留言簿(1)

随笔分类

随笔档案

default

搜索

最新评论

阅读排行榜

评论排行榜