首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >EJB的资料辅导(1)

EJB的资料辅导(1)

作者头像
紫风
发布2025-10-14 15:44:51
发布2025-10-14 15:44:51
1210
举报

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文件。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-10-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档