快速业务通道

EJB核心技术及其应用 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22
OCTYPE 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>ejb.hello.HelloHome</home> <remote>ejb.hello.Hello</remote> <ejb-class>ejb.hello.HelloBean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</transaction-type> </session> </enterprise-beans> <assembly-descriptor> <container-transaction> <method> <ejb-name>Hello</ejb-name> <method-name>*</method-name> </method> <trans-attribute>Required</trans-attribute> </container-transaction> </assembly-descriptor> </ejb-jar>

6、编译和部署

编译Java源文件并将编译后class和ejb-jar.xml打包到Hello.jar

mkdir build

mkdir build/META-INF

cp ejb-jar.xml build/META-INF

javac -d build *.java

cd build

jar cvf Hello.jar META-INF ejb

cd ..

用EJB工具生成可部署到Apusic Application Server中运行的jar文件:

java com.apusic.ejb.utils.EJBGen -d /usr/apusic/classes/Hello.jar build/Hello.jar

增加/usr/apusic/classes/Hello.jar到CLASSPATH中

将Hello.jar加入到Apusic Application Server配置文件中。在/usr/apusic/config/server.xml 加入以下几行:

<module> <ejb> <ejb-uri>classes/Hello.jar</ejb-uri> <bean> <ejb-name>Hello</ejb-name> <jndi-name>HelloHome</jndi-name> </bean> </ejb> </module>

启动服务器

java -Xms64m com.apusic.server.Main -root /usr/apusic

EJB核心技术及其应用(7)

时间:2010-12-25

7、写客户端调用程序

您可以从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.RemoteException; /** * @author Copyright (c) 2000 by Apusic, Inc. All Rights Reserved. */ public class HelloClient{ public static void main(String args[]){ String url = "rmi://localhost:6888"; 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{ hellohome = (HelloHome)initCtx.lookup("HelloHome"); 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 World

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号