`
紫_色
  • 浏览: 142911 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

EJB3(一) 基于JOBSS7.1.1简单入门配置

    博客分类:
  • EJB
阅读更多

EJB作为J2EE标准的一部分,与Spring struts2等轻量级框架不同,EJB天生就是为了分布式而设计的重量级企业框架,说到EJB,自然会想到的是:分布式!如果如果一个应用要进行分布式部署,需要分布式事务的支持,需要支持不同的客户端,那么EJB是一个不错的选择.

EJB根据bean的类型,将它们分为有一种类型,关于下面三种类型,在以后的章节中将会一一讲到.

  • 会话bean
  • 消息驱动bean(MDB)
  • 实体

 

接下来简单认识一下如何搭建一个EJB环境.

首先我使用的的jboss-as-7.1.1.Final  ,这里在可以在jboss那里下载,开发环境使用EJB3.1,基于MyEclipse 10

 

第一步:下载 jboss服务器

 

第二步

创建一个EJB项目:指定项目名称EJBTest  , 选择使用EJB3.1 , 选择不使用JPA,点击完成



 

新建一个接口:

package gd.hz.ejb;

public interface HelloEJB {
	public String say(String name) ;
}

 

实现HelloEJB这个接口

package gd.hz.ejb.bean;

import javax.ejb.Remote;
import javax.ejb.Stateless;

import gd.hz.ejb.HelloEJB;

@Stateless
@Remote
public class HelloEjbBean implements HelloEJB {

	@Override
	public String say(String name) {
		return "你好啊" + name ;
	}
}

 关于@Stateless 和@Remote在以后的章节会介绍到,将EJB项目部署到JBOSS中,可以看到其部署时的类名称为HelloEjbBean(一般为类的名称).这样我们在其它客户端可以通过这个名称查找.

 

将接口HelloEJB打包为jar文件,注意只要导出接口就可以了



 

选择导出jar文件:



 选择需要导出的接口和存放的位置,点击完成:


 

第三步:新建一个普通java客户端:

 
 引入之前导出的HelloEJB接口:

 

新建一个EJBTestClient普通java类,生成main方法:

package gd.hz.ejb.client;

import java.util.Hashtable;

import gd.hz.ejb.HelloEJB;

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

public class EJBTestClient {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Hashtable<String , String> jndiProperties = new Hashtable<String, String>();
		
		//让JNDI API知道是由谁来管理我们用来查找JNDI 名字的命名空间的。  
		jndiProperties.put(Context.URL_PKG_PREFIXES , "org.jboss.ejb.client.naming");
		try {
			/*
			JNDI: ejb:appName/moduleName/distinctName/beanName!viewClassName
			appName:这里是.EAR包的名称,如果你打包成JAR发布的话,这里则留空
			moduleName:表示模块名,也就是ejb包名,但不包括后缀.jar,如admin_ejb.jar。moduleName为admin_ejb
			distinctName:如果没有定义其更详细的名称,则这里留空 
			beanName:这里为实现类的名称
			viewClassName:为接口全路径名称
			*/
			Context context = new InitialContext(jndiProperties);
			HelloEJB hello = (HelloEJB)context.lookup("ejb:/EJBTest//HelloEjbBean!gd.hz.ejb.HelloEJB");
			System.out.println(hello.say("lfd"));
		} catch (NamingException e) {
			e.printStackTrace();
		}
	}
}

 引入%JBOSS_HOME%\bin\client/jboss-client.jar到classpath路径下.

 

在classPath下增加“jboss-ejb-client.properties”文件 ,用于jndi查找.

endpoint.name=client-endpoint
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
remote.connections=default
remote.connection.default.host=127.0.0.1
remote.connection.default.port=4447
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false

  

运行客户端,输出:你好啊lfd

下面是整个例子,这里我没有引入J2EE的jar包.是由MyEclipse帮我引入的,所以要注意.

http://www.kuaipan.cn/file/id_129263676497613717.htm
 

  • 大小: 63.8 KB
  • 大小: 26.7 KB
  • 大小: 64 KB
  • 大小: 90.9 KB
  • 大小: 33.4 KB
  • 大小: 31.6 KB
  • 大小: 44.1 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics