*资源下载地址: www.foshanshop.net 使用 ejb3.pdf教程中....
1.EJB -- Enterprise Java Bean, EJB是OMG成员之一的SUN推出的基于JAVA的构件规范, 构件是可重用的软件组件,以微软为首的DCOM/COM阵营, 从DDE, OLE 到
ACTIVEX等, 提供了构件开发的基础,
2.jboss使用 (支持ejb,要tomcat也支持ejb就得把一些jar包拷贝到tomcat下
的/shared/lib中) 环境 jboss_home e:/jboss4 (jboss安装目录) src类放到“jboss安装目录/server/default/deploy/”目录下,jboss 支持热部署,*.jar会被发现,并自动完成部署。 my.war拷贝到“jboss安装目录/server/default/deploy/”目录下。在浏览器上输入:http://localhost:8080/my/index.jsp
3.JBoss中的部署过程非常的简单、直接。在每一个配置中,JBoss不断的扫描一
个特殊目录的变化: [jboss安装目录]/server/config-name/deploy 此目录一般 “部署目录”。你可以把下列文件拷贝到此目录下: * 任何 jar库(其中的类将被自动添加到 JBoss的 classpath 中) *EJB JAR *WAR (WebAppliction aRrchive) *EAR (EnterpriseApplication aRchive) * 包含 JBossMBean 定义的 XML文件 * 一个包含 EJBJAR、WAR 或者 EAR 的解压缩内容,并以.jar、.war或者.ear结
尾的目录。要重新部署任何上述文件(JAR、WAR、EAR、XML等),用新版本的文件覆盖
以前的 。JBoss会根据比较文件的时间发现改变,然后部署新的文件。要重新部署一个目录,更新他
的修改时间即可。
4.EnterpriseJavaBean(EJB)定义了三种企业Bean,分别是会话 Bean(SessionBean),实体Bean(EntityBean)和消息驱动 Bean(MessageDrivenBean)。
5. 如何进行企业应用打包一个完整的企业应用包含EJB模块和 WEB 模块,在发布企业应用时,我们需要把它打成*.ear文件,在打包们必须配置 application.xml 文件,该文件存放于打包后的 META-INF 目录。我们在 application.xml 文件中需定 EJB 模块和 WEB 模块的信息,一个 application.xml配置例子如下: <application xmlns="http://java.sun.com/xml/ns/j2ee"version="1.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/application_1_4.xsd"> <display-name>EJB3SampleApplication</display-name> <module> <web> <web-uri>web.war</web-uri> <context-root>web</context-root> </web> </module> <module> <ejb>ejb3.jar</ejb> </module> </application> 上面<web>指定 Web 模块,<ejb>指定 EJB 模块,Web 模块或者 EJB 模块都可以存在多个。不管你使用何种方式打包,一个企业应用打包后的目录结构应该如下: ear应用根目录 |-- ejb3.jar (你的 EJB 模块) |-- web.war (你的 WEB 模块) |--META-INF |--MANIFEST.MF(如果使用工具打包,该文件由工具自动生成) |--application.xml
6.
因为客户端需要通过 JNDI查找 EJB,那么 JNDI是什么?
JNDI(TheJavaNamingandDirectoryInterface,Java 命名和目录接口) 是一组在
Java 应用中访问命名和目录服务的
API。为开发人员提供了查找和访问各种命名和目录服务的通用、统一的方式。
借助于JNDI提供的接口,能够通
过名字定位用户、机器、网络、对象服务等。
命名服务:就像 DNS 一样,通过命名服务器提供服务,大部分的 J2EE 服务器
都含有命名服务器。
目录服务:一种简化的RDBMS系统,通过目录具有的属性保存一些简单的信息
。目录服务通过目录服务器实现,
比如微软 ACTIVEDIRECTORY 等。
JNDI的好处:
(1)包含大量命名和目录服务,可以使用相同 API调用访问任何命名或目录服
务。
(2)可以同时连接多个命名和目录服务。
(3)允许把名称同 JAVA 对象或资源关联起来,不必知道对象或资源的物理 ID
。
(4)使用通用接口访问不同种类的目录服务
(5)使得开发人员能够集中使用和实现一种类型的命名或目录服务客户 API上
。
JNDI编程过程
因为JNDI是一组接口,所以我们只需根据接口规范编程就可以。要通过JNDI进
行资源访问,我们必须设置初始
化上下文的参数,主要是设置 JNDI驱动的类名(java.naming.factory.initial)和提
供命名服务的 URL
(java.naming.provider.url)。因为 Jndi的实现产品有很多。所以
java.naming.factory.initial 的值因提供 JNDI服务器
的不同而不同,java.naming.provider.url 的值包括提供命名服务的主机地址和
端口号。
下面是访问Jboss服务器的
Propeties props=new Properties();
props.setProperty
("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
props.setProperty("java.naming.provider.url","localhost:1099"):
InitialContext-new InitialContext(props);
HelloWorld helloworld=(HelloWorld)cxt.lookup(HelloWorldBean/remote");
下面是访问 Weblogic10 应用服务器的例子代码:
Propeties props=new Properties();
props.setProperty
("java.naming.factory.initial","weblogic.jndi.WLInitialContextFactory");
props.setProperty("java.naming.provider.url","t3://localhost:7001"):
InitialContext-new InitialContext(props);
HelloWorld helloworld=(HelloWorld)cxt.lookup(HelloWorldBean/remote");