从制造到创造
软件工程师成长之路
posts - 234,  comments - 64,  trackbacks - 0
1、《EJB3.0实例教程》官方网
2、将 EJB 部署到 WebSphere 应用服务器
3、 Enterprise JavaBeans 入门
posted @ 2007-11-28 13:50 CoderDream 阅读(72) | 评论 (0)编辑 收藏

1、安装Weblogic:
      使用的EJB服务是BEA的weblogic8.1,下载BEA的weblogic8.1,然后安装。安装步骤省略。  
2、定义EJB远程接口(Remote Interface):
       任何一个EJB都是通过Remote Interface被调用,EJB开发者首先要在Remote Interface中定义这个EJB可以被外界调用的所有方法。执行Remote Interface的类由EJB生成工具生成。
  以下是HelloBean的Remote Inteface程序:
package com.leo;
import java.rmi.RemoteException;
import java.rmi.Remote;
import javax.ejb.*;
public interface Hello extends EJBObject, Remote {
//this method just get "Hello EJB" from HelloEJB.
public String getHello() throws RemoteException;
}
3、定义Home Interface
EJB容器通过EJB的Home Interface来创建EJB实例,和Remote Interface一样,执行Home Interface的类由EJB生成工具生成。以下是HelloEJB 的Home Interface程序:
package com.leo;
import javax.ejb.*;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.*;
/**
* This interface is extremely simple it declares only
* one create method.
*/
public interface HelloHome extends EJBHome {
public Hello create() throws CreateException,
RemoteException;
}
4、写EJB类
在EJB类中,编程者必须给出在Remote Interface中定义的远程方法的具体实现。EJB类中还包括一些 EJB规范中定义的必须实现的方法,这些方法都有比较统一的实现模版,编程者只需花费精力在具体业务方法的实现上。
以下是HelloEJB的代码:
package com.leo;
import javax.ejb.*;
public class HelloEJB implements SessionBean{
    public void ejbCreate(){}
    public void ejbRemove(){}
    public void ejbActivate(){}
    public void ejbPassivate(){}
    public void setSessionContext(SessionContext ctx){}
    public String getHello() {
         return new String("Hello,EJB");
    }
}
5、创建ejb-jar.xml文件
  ejb-jar.xml文件是EJB的部署描述文件,包含EJB的各种配置信息,如是有状态Bean(Stateful Bean) 还是无状态Bean(Stateless Bean),交易类型等。ejb-jar.xml文件的详细信息请参阅EJB规范。以下是HelloBean的配置文件:
<?xml version="1.0"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems Inc.//DTD Enterprise JavaBeans 1.2//EN" "http://java.sun.com/j2ee/dtds/ejb-jar_1_2.dtd">
<ejb-jar>
<enterprise-beans>
<session>
<ejb-name>Hello</ejb-name>
<home>com.leo.HelloHome</home>
<remote>com.leo.Hello</remote>
<ejb-class>com.leo.HelloEJB</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>
 

6、创建weblogic-ejb-jar.xml
 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-ejb-jar PUBLIC "-//BEA Systems, Inc.//DTD WebLogic 8.1.0 EJB//EN" "http://www.bea.com/servers/wls810/dtd/weblogic-ejb-jar.dtd">
<weblogic-ejb-jar>
 <description><![CDATA[Generated by XDoclet]]></description>
   <weblogic-enterprise-bean>
      <ejb-name>Hello</ejb-name>
      <stateless-session-descriptor>
      </stateless-session-descriptor>
      <reference-descriptor>
      </reference-descriptor>
      <jndi-name>Hello</jndi-name>
      <local-jndi-name>HelloLocal</local-jndi-name>
   </weblogic-enterprise-bean>
</weblogic-ejb-jar>
7、部署和编译
          EJB的jar包是由class文件和描述文件组成,对于weblogic服务器来说还要增加weblogic-ejb-jar.xml描述文件。编译Java源文并将编译后class和ejb-jar.xml、weblogic-ejb-jar.xml打包到Hello.jar
7.1:创建目录build。
7.2:在build下新建目录META-INF,把文件ejb-jar.xml、weblogic-ejb-jar.xml拷到META-INF下。
7.3:把编译好的class文件拷到build目录下(此时为com/leo/Hello.class,HelloEJB.class,HelloHome.class)。
7.4:打包成jar文件: jar -cvf hello.jar *.* 。
7.5:再将hello.jar文件部署到weblogic服务器中。
8、写客户端调用程序
您可以从Java Client,JSP,Servlet或别的EJB调用HelloBean。
调用EJB有以下几个步骤:
通过JNDI(Java Naming Directory Interface)得到EJB Home Interface
通过EJB Home Interface 创建EJB对象,并得到其Remote Interface
通过Remote Interface调用EJB方法
以下是一个从Java Client中调用HelloBean的例子:
package ejb.hello;
import javax.naming.Context;
import javax.naming.InitialContext;
import java.util.Hashtable;
import javax.ejb.*;
import java.rmi.RmoteException;
/**
* @author Copyright (c) 2000 by Apusic, Inc. All Rights Reserved.
*/
public class HelloClient {
    public static void main(String args[]){
        String url = "rmi://localhost:7100";
          Context initCtx = null;
          HelloHome hellohome = null;
          try {
                  Hashtable env = new Hashtable();
                  env.put(Context.INITIAL_CONTEXT_FACTORY,"com.apusic.jndi.InitialContextFactory");
                  env.put(Context.PROVIDER_URL, url);
                  initCtx = new InitialContext(env);
          } catch(Exception e){
                  System.out.println("Cannot get initial context: " + e.getMessage());
                  System.exit(1);
          }
          try {
                  Object obj=ctx.lookup("Hello");
                  HelloHome home=(HelloHome)PortableRemoteObject.narrow(obj,HelloHome.class);
                  Hello hello = hellohome.create();
                  String s = hello.getHello();
                  System.out.println(s);
         }catch(Exception e){
                  System.out.println(e.getMessage());
                  System.exit(1);
        }
    }
}
  运行HelloClient,可得到以下输出:
  Hello EJB

posted @ 2007-11-28 13:44 CoderDream 阅读(369) | 评论 (0)编辑 收藏
ejb3.0开发环境配置
运行环境配置
1、工具下载与安装
      1>下载安装JDK5.0(www.java.sun.com)
      2>下载安装eclipse3.2.x(www.eclipse.org)(如果你下载了JBOSS IDE2.0(内含eclipse3.2.x,这个可以不要)
      3>下载和安装jboss-4.0.5.GA 服务器(记住一定要下载安装版,内含EJB3.0Container,地址:http://sourceforge.net/project/d ... mp;use_mirror=jaist
      4>下载插件JBOSS IDE 2.0(http://sourceforge.net/project/d ... amp;use_mirror=nchc)
      安装JBOSS是要注意几点:
       1>议不要安装在Program Files 目录,否则一些应用会导致莫名的错。
      2>选择带集群功能的安装选项“ejb3-clustered”
      3>在输入配置名称时,输入“all”
      4>在配置JMX时,把所有选择荐都勾上,并输入jmx-console的用户名和密码!
      5》运行JBOSS,进行JBOSS安装目录下,进入BIN目录下,运行 run -c all,如果直接运行run,会报错!(因为你run.bat不知道你运行的是那种配置all,default,还是min)
2、设置环境变量
    JAVA_HOME=JAVA安装目录
   JBOSS_HOME=JBOSS安装目录

3、认识JBOSS目录用途
目录        描述
bin        启 动 和关闭JBoss的脚本
client         客户端与JBoss通信所需的Java 库(JARs)
docs         配置的样本文件(数据库配置等)
docs/dtd        在JBoss中使用的各种XML文件的DTD。
lib        一些JAR,JBoss启动时加载,且被所有JBoss配置共享。(不要把你的库放在这里)
server         各种JBoss配置。每个配置必须放在不同的子目录。子目录的名字表示配置的名字。JBoss
包含3 个默认的配置:minimial,default和all,在你安装时可以进行选择
server/all         JBoss的完全配置,启动所有服务,包括集群和IIOP。(本教程就采用此配置)
server/default         JBoss 的默认配置。在没有在JBoss 命令航中指定配置名称时使用。(本教程没有安装此
配置,如果不指定配置名称,启动将会出错)
server/all/conf         JBoss的配置文件。
server/all/data         JBoss的数据库文件。比如,嵌入的数据库,或者JBossMQ。
server/all/deploy        JBoss的热部署目录。放到这里的任何文件或目录会被JBoss自动部署。EJB、WAR、EAR,甚至服务。
server/all/lib         一些JAR,JBoss在启动特定配置时加载他们。(default和minimial配置也包含这个和下面两个目录。)
server/all/log        JBoss的日志文件
server/all/tmp        JBoss的临时文件
4、EJB部署
   JBoss中的部署过程非常的简单、直接。在每一个配置中,JBoss不断的扫描一个特殊目录的变化:
[jboss安装目录]/server/config-name/deploy。
posted @ 2007-11-28 11:49 CoderDream 阅读(307) | 评论 (0)编辑 收藏

<2007年11月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

常用链接

留言簿(5)

我参与的团队

随笔分类(231)

随笔档案(229)

文章分类(3)

文章档案(3)

收藏夹(440)

友情链接

搜索

  •  

积分与排名

  • 积分 - 60377
  • 排名 - 170

最新评论

阅读排行榜

评论排行榜