吴江重点小学排名2017:一个简单的EJB例子 - AJava
来源:百度文库 编辑:中财网 时间:2024/04/30 10:14:21
开发一个简单的EJB
一:EJB开发基本上都遵循一个过程,从总体上说,可以分成 五个步骤:
.EJB程序代码编写
.EJB程序代码编译
.EJB部署描述文件编写
.打包
.编译生成容器代码
二:简单介绍 EJB代码编写
HelloWorld EJB程序代码包括的接口和类名如下:
HelloHome 主接口 继承 javax.ejb.EJBHome
HelloHome.java 文件名
功能:定义创建方法
Hello 远程接口 继承 javax.ejb.EJBObject
Hello.java 文件名
功能:定义业务逻辑方法
HelloBean Bean 类 继承 javax.ejb.SessionBean HelloBean.java 文件名
功能:实现业务逻辑
HelloClient 客户端类 HelloClient.java 文件名
功能:测试程序
三:代码编写源码
<1>:HelloHome.java
- package com.aaa.cjh;
- public interface HelloHome extends javax.ejb.EJBHome {
- Hello create()throws java.rmi.RemoteException,
- javax.ejb.CreateException;
- }
<2>:Hello.java
- package com.aaa.cjh;
- public interface Hello extends javax.ejb.EJBObject{
- public String hello()throws java.rmi.RemoteException;
- public String helloOne()throws java.rmi.RemoteException;
- }
<3>:HelloBean.java
- package com.aaa.cjh;
- import javax.ejb.SessionContext;
- import org.apache.log4j.Logger;
- public class HelloBean implements javax.ejb.SessionBean {
- Logger log = Logger.getLogger(HelloBean.class);
- private SessionContext ctx;
- public void ejbCreate(){
- log.debug("ejbCreate()");
- }
- public void ejbRemove(){
- log.debug("ejbRemove()");
- }
- public void ejbActivate(){
- log.debug("ejbActivate()");
- }
- public void ejbPassivate(){
- log.debug("ejbPassivate()");
- }
- public void setSessionContext(javax.ejb.SessionContext ctx){
- this.ctx =ctx;
- }
- public String hello(){
- log.debug("hello()");
- return "Hello,-----------------World!";
- }
- public String helloOne(){
- log.debug("helloOne()");
- return "helloOne,-----------------World!";
- }
- }
<4>:HelloClient.java
- package com.aaa.cjh;
- import java.util.Properties;
- import javax.naming.Context;
- import javax.naming.InitialContext;
- import javax.rmi.PortableRemoteObject;
- public class Test {
- /**
- * @param args
- */
- public static void main(String[] args) {
- Properties prop = new Properties();
- prop.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
- prop.put(Context.PROVIDER_URL, "t3://localhost:端口号");
- prop.put(Context.SECURITY_PRINCIPAL, "weblogic用户名");
- prop.put(Context.SECURITY_CREDENTIALS, "weblogic密码");
- Context context = null;
- try {
- context = new InitialContext(prop);
- HelloHome home = (HelloHome) PortableRemoteObject.narrow(context.lookup("HelloBean"),HelloHome.class);
- Hello hello = home.create();
- String docc=hello.hello();
- String doccc=hello.helloOne();
- System.out.println("完成");
- System.out.println(docc);
- System.out.println(doccc);
- context.close();
- } catch(Exception ex) {
- ex.printStackTrace();
- }
- }
- }
四:EJB部署文件编写
<1>:ejb-jar.xml
HelloBean HelloBean com.aaa.cjh.HelloHome com.aaa.cjh.Hello com.aaa.cjh.HelloBean Stateless Container HelloBean * Required
<2>:weblogic-ejb-jar.xml
HelloBean HelloBean
<3>:MANIFEST.MF
Manifest-Version: 1.0
Created-By: 1.5.0_04 (Sun Microsystems Inc.)
五:打包 pkg.bat 文件
@echo off
set PATH=D:\Program Files\Java\jdk1.5.0_04\bin;%PATH%
del HelloBean.jar
jar -cvf HelloBean.jar .
六:部署EJB 该实例在weblogic中部署EJB的jar包
以上操作完成后,执行HelloClient.java内进行调用测试。