现在的位置: 首页 > 综合 > 正文

*EJB — Enterprise Java Bean 学习1

2013年08月17日 ⁄ 综合 ⁄ 共 3016字 ⁄ 字号 评论关闭

*资源下载地址: 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");

 

 

 

 

抱歉!评论已关闭.