读书人

ejb3学习札记2(ejb3 helloworld之本地

发布时间: 2012-11-03 10:57:43 作者: rapoo

ejb3学习笔记2(ejb3 helloworld之本地远程调用)

ejb3学习笔记2(ejb3 helloworld之本地远程调用)

?

一。改写组件,再次导出jar包,拷贝到deploy目录下

?

?

package cn.wenkun.ejb.service;import javax.ejb.Remote;@Remotepublic interface HelloWorldRemoteService extends HelloWorldService {}package cn.wenkun.ejb.service;import javax.ejb.Stateless;@Statelesspublic class HelloWorldServiceBean implements HelloWorldService,HelloWorldRemoteService{public String sayHello(String str) {System.out.println("hello");return "hello,"+str;}}
?

?

?

?

二。本地远程调用

?

?

原理:socket进行进程通信,对象传输用到java的序列化与反序列化

?

remote远程调用?

ejb 生成两个代理:stub存根(客户端代理)socket ? ? ? ? skeleton(服务端代理)serversocket

?

package cn.service.app;import java.util.Properties;import javax.naming.InitialContext;import javax.naming.NamingException;import cn.wenkun.ejb.service.HelloWorldService;public class EjbApp {public static void main(String[] args) {try {Properties prop = new Properties();prop.put("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");prop.put("java.naming.provider.url", "localhost:1099");\\ejb远程调用端口InitialContext ctx = new InitialContext(prop);HelloWorldService hws = (HelloWorldService) ctx.lookup("HelloWorldServiceBean/remote");String res = hws.sayHello("tom");System.out.println(res);} catch (NamingException e) {e.printStackTrace();}}}                                                                                                                                                              

读书人网 >编程

热点推荐