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

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

 

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

 

 

package cn.wenkun.ejb.service;

import javax.ejb.Remote;

@Remote
public interface HelloWorldRemoteService extends HelloWorldService {

}



package cn.wenkun.ejb.service;

import javax.ejb.Stateless;

@Stateless
public 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();
		}
	}

}                                                                                                                                                              
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值