myeclipse10 实现JSF远程EJB3接口

通过两天的学习,把EJB的JNDI结合JSF或者其他框架开发的过程实现了,对JNDI有了深刻的体会,现在我们要实现JSF调用远程接口

我们先用EJB3把功能开发出来,然后提供接口类给需要的对方,然后只需要在服务器上暴露接口就可以了

EJB功能

package com.bean;


public interface HelloTimeLocal{
	public String showTime(String time);
}

package com.bean;

import java.text.SimpleDateFormat;
import java.util.Calendar;

import javax.ejb.Local;
import javax.ejb.Stateless;

@Local(HelloTimeLocal.class)
@Stateless(name="hello")
public class HelloTime implements HelloTimeLocal{
	@Override
	public String showTime(String time) {
		String helloTime = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss").format(Calendar.getInstance().getTime());
		return new String("您好,"+time+"!\n当前时间:"+helloTime);
	}
}
然后把EJB打包成jar,运行在EJB容器的服务器里,如我现在用的是jboss6,之前使用(jboss4老是无法成功)

接着把

HelloTimeLocal
这个接口交给需要远程访问的用户,让他去开发

JSF

package com.bean;

import javax.naming.InitialContext;
import javax.naming.NamingException;

public class EJBFactory {
    public static Object lookup(String ejbrefname) {
    	try {
			InitialContext ctx = new InitialContext();
			//return ctx.lookup("java:comp/env/"+ ejbrefname);
			return ctx.lookup("hello/local");
		} catch (NamingException e) {
			e.printStackTrace();
		}
		return null;
    }
}

定义一个公用类,用于远程调用接口,当然我们是在同一个机器模拟远程的,如果你的EJB是在同个服务器时,直接用@EJB注入就可以了

package com.jsf;

import com.bean.EJBFactory;
import com.bean.HelloTimeLocal;

public class HelloJsbean {
	private String name;
	private String msg;
	private HelloTimeLocal hl;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getMsg() {
		return msg;
	}
	public void setMsg(String msg) {
		this.msg = msg;
	}
	public String showTime() throws Exception {
		hl = (HelloTimeLocal) EJBFactory.lookup("hello");
		this.msg = hl.showTime(name);
		return "success";
	}
}

对于绑定接口时要看服务器上布置了EJB后其后台显示的是什么接口名称就用什么接口名称,不然会出现无法绑定的现象


下面的就是JSF的工作了




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值