`
java_hanyu
  • 浏览: 69960 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

EJB3.0学习笔记(一)

阅读更多

EJB(Enterprise JavaBean企业级的JavaBean)

企业级应用的架构

Host/Terminal(主机/终端,终端不具备处理能力,数据由主机处理)
C/S(Client/Server客户端/服务器端)
Multi-layered(多层架构)

EJB的功能
1,远程调用 RMI
2,负载均衡,将访问均衡到各个服务器中
3,透明的故障修复
4,集群(多台相同的系统服务器,有代理服务器均衡到后台的服务器)
5,后台集成
6,事务(全局/局部)全局事务(分布式事务)局部事务(在同一数据库联接内的事务)
7,动态的重部署(在不停止原系统的情况下,部署新的系统)
8,系统管理
9,多线程处理
10,面向消息的中间件(异步的调用编程)
11,管理对象的生命周期
12,资源池
13,安全
14,缓存

EJB的应用(主要用于处理商业逻辑),EJB是一个标准,是开发和部署服务器端的组建的标准。
SOA(面向服务的架构)和EJB的关系
服务,一组组件所提供的功能。
SOAP(简单对象访问协议)
WSDL(web服务描述语言)(Web Services)

写一个EJB的步骤
1,配置EJB的运行环境
2,写商业接口
3,写Bean类,实现商业接口(Bean类不能同时实现远程接口和本地接口)
4,编译文件
5,提供部属文件,EJB3.0中使用了注释不用写标准部署描述(ejb-jar.xml),系统调优用的厂商部署描述是需要写的。
6,打jar包,部署到服务器中

EJB3.0使用了JAVA SE 5.0 中的注释新特性,只要在方法上写EJB规范的注释,就可以不用来写标准的部署表述,ejb-jar.xml这个要放到jar文件的mate-inf文件夹里。
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" metadata-complete="true" version="3.0" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">
<enterprise-beans>
  <session>
    <display-name>HelloBean</display-name>
    <ejb-name>HelloBean</ejb-name>
    <business-remote>test.HelloRemote</business-remote>
    <ejb-class>test.HelloBean</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <security-identity>
        <use-caller-identity/>
    </security-identity>
  </session>
</enterprise-beans>
</ejb-jar>

写EJB客户端的步骤
1,运行客户端前要加上在SUN的服务器文件夹中的lib下的javaee.jar和appserv-rt.jar
2,配置系统的JNDI的环境
3,写测试类,注意在测试类中也要有商业接口

在厂商的部署描述中可以配置EJB的实例池,可以一次创建多个EJB的实例。
EJB的类型
1,SessionBean(Statless/Statfull)
    无状态的SessionBean是不会保存的信息的和状态,无状态的SessionBean是可以重用的,而不是被立刻销毁
    有状态的SessionBean只为一个用户来服务。
2,MDB(Message Driver Bean)消息驱动Bean,可以进行异步的编程
3,Entity Bean 访问数据库,已经被JPA(JAVA持久化API)替代。
4,JPA基于ORM方式来实现对数据库的访问

无状态SessionBean

商业接口
@Remote
public interface HelloRemote {
    public String hello();
}

Bean类,Bean类即可以实现商业接口,也可以不实现,但是其中的方法签名要和接口中相同,不过最好还是实现商业接口避免书写错误
@Stateless
@Remote(test.HelloRemote.class)
public class HelloBean implements HelloRemote {
    public String hello() {
        return "Hello World";
    }
}

注意:EJB一定要先部署到服务器,EJB需要部署环境才能运行

EJB客户端
public class Cilent {
    public static void main(String[] args) throws NamingException {

        System.setProperty("jndi.factory","com.sun.jndi.cosnaming.CNCtxFactory");
        System.setProperty("jndi.provider.url","corbaloc::localhost:3007/NameSpace");
        Context ctx=new InitialContext();
        HelloRemote hello=(HelloRemote)ctx.lookup("test.HelloRemote");
        System.out.println(hello.hello());
        System.out.println(hello.helloword("lichen"));
    }
   
}

注意:在写客户端时,要引入javaee.jar和appser-rt.jar还要引入已经编译好的EJB的jar文件。
分享到:
评论

相关推荐

    EJB3.0 学习笔记

    记录自己学习EJB3.0中学到的各个章节的一些东西.

    EJB3.0 - 学习笔记

    EJB(Enterprice JavaBeans)是一个用于分布式业务应用的标准服务端组建模型.采用EJB架构编写的应用是可伸缩的,事务性的,多用户安全的.采用EJB编写的这些应用,可以部署在任何支持EJB规范的服务器平台,如jboss,weblogic...

    EJB3.0

    EJB3.0的学习总结和笔记

    EJB学习资料

    有《Jboss EJB3.0实例教程》和《EJB3.0实例教程》两本pdf书籍,以及两本外文pdf书籍及源码,分别为ejb-3_0-fr-spec-persistence.pdf和ejb-3_0-fr-spec-simplified.pdf,以及EJB课堂笔记.doc和EJB基础.chm、EJB学习...

    EJB3笔记代码

    学习EJB3所写示例代码,可以直接在JBoss4.0.4GA中运行。

    Java/JavaEE 学习笔记

    第一章 EJB3.0 Foundation...............329 第二章 Session Bean........................330 第三章 消息驱动Bean(MDB).........332 第四章 JPA(Java Persistence API)...332 第五章 Advanced Persistence ...

    J2EE学习笔记(J2ee初学者必备手册)

    第一章 EJB3.0 Foundation...............329 第二章 Session Bean........................330 第三章 消息驱动Bean(MDB).........332 第四章 JPA(Java Persistence API)...332 第五章 Advanced Persistence ...

    netbeans学习笔记

    IDE 常规教程 编辑特性 GUI 生成器 (Matisse) 插件(模块)开发 富客户端 (Rich Client) 平台(NetBeans 平台) Profiler ...Java EE 5 和 EJB 3.0 Java SE 编程 数据访问 测试和调试 移动性

    j2ee学习笔记.rar

    把学到j2ee企业级开发用的知识大体总结了一下,对于初学者很实用,对于以后会有很大的帮助!

    整理后java开发全套达内学习笔记(含练习)

    宣告变量名称的同时,加上“final”关键词来限定,这个变量一但指定了值,就不可以再改变它的值 如:final int n1= 10; n1=20; 这就会报错 输出命令: System.out.println() 会自动换行的打印 System.out....

    spring学习笔记

    目录 1.1 Spring 框架学习路线:...........................................................................................................................4 1.2 Spring 框架的概述:...........................

Global site tag (gtag.js) - Google Analytics