无状态EJB

无状态EJB     本文主要做一个HelloWorld 无状态会话Bean 大家知道完成一个无状态会话Bean主要有三个类: 两个接口类(Home Interface以及Remote Interface),一个HelloWorld的实现类; 以及两个EJB的部署描述符,在WebLogic Server中部署描述符有如下两个文件: ejb-jar.xml以及WebLogic-ejb-jar.xml 下面就上述内容予以分别介绍: 1.远程接口(Remote Interface) 远程接口列出了EJB供客户使用的业务逻辑方法,EJB作者并不需要实现这些方法,而是由EJB容器负责具体实现远程接口中的方法。EJB开发人员使用远程接口向客户机业务逻辑方法。 HelloWorld远程接口(HelloWorld.java): package com.learnweblogic.examples.ch8.helloworld; import java.rmi.RemoteException; import javax.ejb.EJBObject; public interface HelloWorld extends EJBObject { public String helloWorld() throws RemoteException; } 2.本地接口(Home Interface) 本地接口是EJB的工厂,客户机可以使用本地接口创建、找出和删除EJB实例。EJB作者只需定义本地接口中的方法的语法调用格式。 HelloWorldHome接口(HelloWorldHome.java): package com.learnweblogic.examples.ch8.helloworld; import java.rmi.RemoteException; import javax.ejb.CreateException; import javax.ejb.EJBHome; public interface HelloWorldHome extends EJBHome { public HelloWorld create() throws CreateException, RemoteException; } 3.Bean实现类 Bean类实现业务逻辑方法,通过远程接口展示给客户机。 HelloWorldBean类(HelloWorldBean.java): package com.learnweblogic.examples.ch8.helloworld; import javax.ejb.SessionBean; import javax.ejb.SessionContext; public class HelloWorldBean implements SessionBean { private SessionContext ctx; public void setSessionContext(SessionContext c) { ctx = c; } public void ejbCreate() {} public void ejbRemove() {} public void ejbActivate() {} public void ejbPassivate() {} public String helloWorld() { return "Hello World. Welcome to EJB!"; } } 5.ejb-jar.xml配置描述器 ejb-jar.xml配置描述器告诉WebLogic EJB容器,EJB的本地接口、远程接口和Bean类的名字。 <?xml version="1.0"?> <!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN' 'http://java.sun.com/dtd/ejb-jar_2_0.dtd'> <ejb-jar> <enterprise-beans> <session> <ejb-name>HelloWorld</ejb-name> <home>com.learnweblogic.examples.ch8.helloworld.HelloWorldHome</home> <remote>com.learnweblogic.examples.ch8.helloworld.HelloWorld</remote> <ejb-class>com.learnweblogic.examples.ch8.helloworld.HelloWorldBean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Bean</transaction-type> </session> </enterprise-beans> </ejb-jar> 6.webLogic-ejb-jar.xml描述器 这个配置描述器使EJB作者能够配置WebLogic特定的参数。 <?xml version="1.0"?> <!DOCTYPE weblogic-ejb-jar PUBLIC "-//BEA Systems, Inc.//DTD WebLogic 6.0.0 EJB//EN" "http://www.bea.com/servers/wls600/dtd/weblogic-ejb-jar.dtd" > <weblogic-ejb-jar> <weblogic-enterprise-bean> <ejb-name>HelloWorld</ejb-name> <jndi-name>HelloWorldEJB</jndi-name> </weblogic-enterprise-bean> </weblogic-ejb-jar> 此EJB档案文件结构如下: com/learnweblogic/examples/ch8/helloworld/ com/learnweblogic/examples/ch8/helloworld/HelloWorld.class com/learnweblogic/examples/ch8/helloworld/HelloWorldBean.class com/learnweblogic/examples/ch8/helloworld/HelloWorldHome.class META-INF/ META-INF/ejb-jar.xml META-INF/weblogic-ejb-jar.xml 7.EJB客户机程序 客户机程序(HelloWorldClient.java),这个程序是用于调用你的EJB,用来作测试的。 import com.learnweblogic.examples.BaseClient; import javax.naming.Context; import javax.naming.NamingException; import javax.rmi.PortableRemoteObject; public final class HelloWorldClient extends BaseClient { private Context ctx; HelloWorldClient(String [] argv) throws NamingException { super(argv); ctx = getInitialContext(); } public void runClient() throws Exception { HelloWorldHome home = null; try { Object h = ctx.lookup("HelloWorldEJB"); home = (HelloWorldHome) PortableRemoteObject.narrow(h, HelloWorldHome.class); } catch (NamingException ne) { System.err.println("Unable to lookup the HelloWorld EJB."); System.err.println("Please make sure that the bean has been deployed"+ ", and the client's classpath has been set correctly."); throw ne; } try { HelloWorld hw = home.create(); System.out.println("Say Hello to EJB."); String ejbSays = hw.helloWorld(); System.out.println("The EJB said: "+ejbSays); } catch (Exception e) { System.err.println("Received an unexpected exception " + e + " while using the HelloWorldEJB."); throw e; } } public static void main(String[] argv) throws Exception { HelloWorldClient hwc = new HelloWorldClient(argv); hwc.runClient(); } } 其他命令: 设置环境: C:/bea/weblogic81/server/bin/setWLSEnv 或者 C:/bea/user_projects/domains/mydomain/setEnv 编译: javac -d . *.java 打包: jar cf packagename.jar *.* weblogic打包: java weblogic.ejbc packagename.jar C:/packagename.jar
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值