前序
既然是菜菜的ejb,那么第二篇就是讲解如何来编写ejb的helloword了。helloworld是再熟悉也不过了,通过这样一个实例来熟悉和简单了解ejb程序从编写到部署和调用的简单过程。
开发环境
Jboss 5.0 GA版:http://jbossas.jboss.org/downloads.html
Myeclipse 10.0:http://www.myeclipseide.cn/
Jdk 1.6 :http://www.oracle.com/technetwork/java/javase/downloads/index.html
步骤
配置jboss环境
当然如果用的是MyEclipse的话可以直接跳过这步即可;如果是纯净不带插件的eclipse,则需要配置相应的jboss-tools来配置jboss环境了。
Jboss tools:http://tools.jboss.org/downloads/jbosstools/luna/4.2.0.Final.html#zips
在jboss tools官网了提供了4种有关这个插件安装的方式(米国人民真是没的说啊).我用的是install new
software ,将下面的链接键入即可。
http://download.jboss.org/jbosstools/updates/stable/luna/
最后在如下界面看到相应的sever即可。
配置jre
直接在jboss 下面的jdk,配置到jdk的根目录即可。
新建ejb project
配置完毕jre及jboss,新建ejb project
1.新建ejb project
目录结构说明:如上图中生成的目录结构中,ejbModule目录是编写JAVA源码的目录(即EJB代码);
build:则为编译后生成的文件;
JRE System Library、Java EE x Libraries:相应的运行环境。
EJBbean
对于bean,简单来理解就是一个带有业务逻辑处理的java类。而ejbbean就可以这样来理解,针对企业级开发的java类。首先来从大面上将这些概念给解决掉,后面在具体根据细节来探讨。
这里主要编写的是EJBbean,书写业务颗粒。
接口
code
package com.cfl.ejb; public interface FirstEJB { public String sayHello(String str); }
注:就是一个简单的接口,定义了一个用来输出字符串的方法。
实现
代码
package com.cfl.ejb; import javax.ejb.Remote; import javax.ejb.Stateless; @Stateless @Remote public class FirstEJBBean implements FirstEJB { public String sayHello(String str) { // TODO Auto-generated method stub return str; } }
注:一个再简单不过的实现
注解
定义ejb的种类和访问方式。
部署到jboss服务器
将相应的项目发布到jboss项目下即可
注意:ejb命名特殊符号,因为jboss对于ejb的命名很敏感。
客户端
查找ejb
代码
package com.cfl.ejbclient; import javax.naming.InitialContext; import javax.naming.NamingException; import com.cfl.ejb.FirstEJB; public class ejbclient { public static void main(String[] args){ try { InitialContext context =new InitialContext(); FirstEJB firstEjb=(FirstEJB)context.lookup("FirstEJBBean/remote"); String s=firstEjb.sayHello("helloworld"); System.out.print(s); } catch (NamingException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
其实context类似在之前抽象工厂,其实也就是抽象工厂模式的体现。来利用反射得到相应的类的实例。
Jndi.properties
这里先不对sun的四种jndi进行分析,先知道这个是用来去查找相应的bean即可。
定义相应的jndi,生成jndi.properties,放在客户端的src的根目录下面。
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces java.naming.provider.url=localhost
Jar放到jre环境中
打包jar
将生成的jar文件放到客户端的jre libraries里面
引入jboss clientjar包
添加user libraries
导入jars
后序
相当于一个简单的流程式的讲解,简单的通过的流程来感受一下ejb的使用。当然这里肯定是无法体味到ejb作为j2ee的核心这样一个用处的,后面继续。