J2EE测试题
J2EE开发基础(习题卷20)

J2EE开发基础(习题卷20)说明:答案和解析在试卷最后第1部分:单项选择题,共57题,每题只有一个正确答案,多选或少选均不得分。
1.[单选题]以下哪些不属于Spring 4.3版本中Bean的作用域()A)applicationB)requestC)responseD)globalSession2.[单选题]在Servlet 过滤器的生命周期方法中,每当传递请求或响应时, web 容器会调用( )方法。
A)serviceB)initC)destroyD)doFilter3.[单选题]下面一对多关联的配置中,存在哪些错误( )。
<set name="orders" inverse="false" cascade="true"><one-to-many class="com.x.entity.Order"column="customer_id" /></set>A)inverse 属性不可以设置为falseB)cascade属性可设置为trueC)class="com.x.entity.Order" 应为type="com.x.entity.Order"D)column 属性不可再<one-to-many> 节点内设置4.[单选题]在JSP页面中可以通过Struts 2 提供的()标签来输出国际化信息A)<s: texts >B)<s: submit >C)<s: input >D)<s:text>5.[单选题]<html ><body><jsp:useBean id="address" class="Address Bean" / ><jsp:setPropertyname="address" property="city" / ><jsp:get Property name="address" property="city" / ></body ></html >如果用下面的URL访问,页面会输出什么结果? ( )http://localhost:8080/ address.jsp?city=ChicagoA)MiamiB)ChicagoC)以上都不对D)Los Angeles6.[单选题]在web.xml文件中,描述了一个Servlet,其中( )指定了Servlet类的访问路径。
j2ee考试题及答案ejb

j2ee考试题及答案ejb1. 什么是EJB(Enterprise JavaBeans)?EJB是一种服务器端组件架构,用于开发和部署多层结构的、分布式的、面向对象的Java应用程序。
EJB组件提供了一种结构化的方法来创建可重用的、可伸缩的和事务性的业务逻辑。
2. EJB有哪些类型?EJB主要有三种类型:会话Bean(Session Beans)、实体Bean(Entity Beans)和消息驱动Bean(Message-Driven Beans)。
3. 会话Bean(Session Beans)的作用是什么?会话Bean代表与客户端的短暂交互,它们通常用于实现应用程序的业务逻辑,但不保存数据。
会话Bean可以是无状态的(Stateless)或有状态的(Stateful)。
4. 实体Bean(Entity Beans)和会话Bean(Session Beans)有什么区别?实体Bean代表业务实体,通常与数据库中的持久数据相关联,而会话Bean代表与客户端的短暂交互,不直接与持久数据关联。
5. 消息驱动Bean(Message-Driven Beans)的主要功能是什么?消息驱动Bean是一种特殊的EJB,用于处理来自消息队列的消息。
它们是无状态的,并且可以异步处理消息,这使得它们非常适合处理大量消息。
6. EJB容器提供哪些服务?EJB容器提供多种服务,包括事务管理、安全性、持久性、生命周期管理、并发控制和资源池。
7. EJB的事务属性有哪些?EJB的事务属性包括:Required、RequiresNew、Mandatory、Never、NotSupported和Supports。
8. 如何在EJB中处理异常?在EJB中,可以通过声明异常(declarative exception handling)和编程异常(programmatic exception handling)两种方式来处理异常。
J2ee测试题

J2ee测试题一、针对以下题目请选择正确答案(每道题目有一个或多个正确的答案)。
针对每一道题目,所有答案都选对,则该题得分,所选答案错误或不能选出所有正确答案,则该题不得分。
此外,多注意上课的内容,其余章节也有题,这里不给出参考题目。
1) 在J2EE中,test.jsp文件中有如下一行代码:<jsp:useBean id=”user”scope=”___”type=”erBean”/>在使user对象可以作用于整个应用程序。
下划线中应填入(d)(选择一项)a) pageb) requestc) sessiond) application2) 在JSP中,(a)动作用于将请求转发到其他的JSP页面(选择一项)a) forwardb) includec) useBeand)setProperty3) 在J2EE中,在一个JSP文件中,有表达式<%=2+3%>,它将输出(b)(选择一项)a) 2+3b) 5c) 23d) 不会输出,因为表达式是错误的4) 要设计一个大型的基于多层体系结构的WEB应用系统,系统界面基于HTML和XML,该系统要不断的进行版本升级(即日后维护,二次需求开发等任务量较大),要达成这些目标,最适合的开发模式是(c)(选择一项)a) DAOb) Value Objectc) MVCd) Proxy5) 在J2EE实现企业级应用开发中,(a)是描述标记库的XML文档(选择一项)a) TLD文件b) DTD文件c) WAR文件d) EAR文件6) 给定JSP程序如下,可以在下划线处插入并且能够正确输出WELCOME,JACK的语句是(bd)(选择二项)<html><body><%Stringname=”JACK”;%>WELCOME,_________</body></html>a) nameb) <%=name%>c) out.println(name);d) <%out.println(name);%>7) 在J2EE中,重定向到另一个页面,以下(c)语句是正确的(选择一项)a) request.sendRedirect(http://www.jb_);b) request.sendRedirect();c) response.sendRedirect(“http://www.jb_”);d) response.sendRedirect();8)给定JSP中,使用<jsp:useBean>动作可以将javaBean嵌入JSP页面,对JavaBean的访问范围不能是(b)(选择一项)a) pageb) requestc) responsed) application9) Servlet中,使用()接口中定义的(b)方法来处理客户端发出的表单数据请求(选择一项)a) HttpServlet doHeadb) HttpServlet doPostc) ServletRequest doGetd)ServletRequest doPoste)10) 给定JSP程序源码如下,该JSP运行后输出的结果是(b)(选择一项)<html><% int count=1;%>Count:<%=++Count%></html>a) Count:1b) Count:2c) 1:2d)Count:s11) 给定java程序User.java,代码如下package user;public class User{private String password;private String loginName;public String getLoginName() {return loginName;}public void setLoginName(String loginName) {this.loginName = loginName;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}给定user.jsp,代码片断如下:________loginName:<jsp:getProperty name=”user”property=”loginName”/> password:<jsp:getProperty name=”user”property=”password”/>在浏览器上输入URL:http://localhost/user.jsp?loginName=sa&password=sa并回车,要使浏览器上显示:loginName:sa password:sa,在user.jsp中的下划线处应填上以下( ab )代码(选择二项)a) <jsp:useBean id="user" class="er" scope="page"/><jsp:setProperty name="user" property="loginName" value="*"/><jsp:setProperty name="user" property="password" value="*"/>b) <jsp:useBean id="user" class="er" scope="application"/><jsp:setProperty name="user" property="loginName" value="*"/><jsp:setProperty name="user" property="password" value="*"/>c) <jsp:useBean id="user" class="er" scope="page"/><jsp:setProperty name="user" property="*"/>d) <jsp:useBean id="user" class="er" scope="application"/><jsp:setProperty name="user" property=" *"/>12) 某JSP程序中声明使用Javabean的语句如下:<JSP:userBean id=”user”class=”er”scope=”page”/> 要取出该javaBean中loginName的属性值,以下语句正确的是( ac ).( 选择二项)a) <jsp:getProperty name=”user” property=”loginName”/>b) <jsp:getProperty id=”user” property=”loginName”/>c) <%=user.getLoginName()%>d) <%=user.getProperty(“loginName”)%>13) J2EE中,以下关于HttpServlet的说法错误的是( a)(选择一项)a) HttpServlet是一个抽象类b) HttpServlet类扩展了GenericServlet类c) HttpServlet类的子类必须至少重写service方法d) HttpServlet位于javax.servlet.http包中14) 给定一个JSP程序源码,如下:<jsp:include page=”two.jsp”flush=”true”><jsp:param name=”location”value=”beijing”/></jsp:include>在two.jsp中加入( d)代码片断可以输出参数location的值.(选择一项)a) <jsp:getParam name=”location”>b) <jsp:getParameter name=”location”>c) <%=request.getAttribute(“location”)%>d) <%=request.getParameter(“location”)%>15) J2ee中,JSP EL表达式: ${(10*10) ne 100}的值是(b)(选择一项)a) 0b) Truec) Falsed) 116) 在J2ee中,test.jsp文件如下<html><% { %><jsp:useBean id=”buffer”scope=”page”type=”ng.StringBuffer”/><% buffer.append(“ABC”);%><%}%>buffer is<%=buffer%></html>运行时,将发生(b )(选择一项)a) 转译期错误b) 编译期错误c) 运行后,浏览器上显示:buffer is nulld) 运行后,浏览器上显示:buffer is ABC17) 在J2ee中,在JSP中想要使用user包中的User 类,则以下写法正确的是(a)a) <jsp:useBean id=”user” class=”er” scope=”page”/>b) <jsp:useBean class=”er.class”/>c) <jsp:useBean name=”user” class=”er”>d) <jsp:userBean id=”user” class=”User” import=”user.*”/>18) 给定include1.jsp文件代码片断,如下:<% pageContext.setAttribute(“User”,”HAHA”);%>_______//此处填写代码;给定include2.jsp文件代码片断,如下:<%=pageContext.getAttribute(“User”)%>要求运行include1.jsp时,浏览器上输出:HAHA.要满足以上条件,include1.jsp中下划线处应填入以下(a)语句。
J2EE开发基础(习题卷2)

J2EE开发基础(习题卷2)说明:答案和解析在试卷最后第1部分:单项选择题,共59题,每题只有一个正确答案,多选或少选均不得分。
1.[单选题]()模式指的是在单个组件中负责所有实体域对象的持久化,封装数据访问细节。
A)对象关系映射。
B)对象关系。
C)关系数据库。
D)对象数据库。
2.[单选题]CSS选择器中标记选择器和类型选择器的作用范围A)标记选择器大于类型选择器B)标记选择器等于类型选择器C)标记选择器小于类型选择器D)不确定3.[单选题]下面哪项是Spring自动装载模式A)autodetectB)全部选项C)constructorD)byname, byType4.[单选题]@RequestParam注解中可以省略属性名称的是。
( )A)defaultValueB)valueC)nameD)required5.[单选题]以下代码执行效果为( )。
(选择一项)<%session.setAttribute("a","svse");%><c:if test="2>1"><c:out value="${a}"/></c:if>A)aB)svseC)2>1D)Null6.[单选题]要查询学生信息表中张姓,名字中有一个字符的学生情况,可使用语句?A)Select*from 学生信息表where姓名 like张%’B)Select*from 学生信息表where姓名like张’C)Select*from 学生信息表where 姓名 like%张%’D)Select*from 学生信息表where姓名=张7.[单选题]什么是远程接口? ( )A)这样的接口,它监听客户调用的远程方法调用并重定向对服务器上的远程RMI服务器的调用。
B)用唯一名注册的远程对象的接口。
C)其声明的方法可被客户远程地调用的接口。
J2EE考试试卷

一单项选择一单项选择1 J2EE 1 J2EE 中,中,()类的()方法用于创建对话。
(选择一项)(选择一项)a) a) HttpServletRequest HttpServletRequest 、getSessionb) HttpServletResponse b) HttpServletResponse、、newSessionc) HtttpSession c) HtttpSession、、newInstanced) HttpSession d) HttpSession、、getSession2 2 给定一个给定一个给定一个 Servlet Servlet Servlet 的的doGet 方法中的代码片段,如下:方法中的代码片段,如下:request.setAttribute(request.setAttribute(““name name””,”zhang zhang””);response.sendRedirect(response.sendRedirect(““http://localhost:8080/servlet/MyServlt ”) 那么在那么在 MyServlet MyServlet MyServlet 中可以使用()方法把属性中可以使用()方法把属性中可以使用()方法把属性 name name 的值取出来。
(选择一项)项)a)a) String str=request.getAttribute(String str=request.getAttribute(““name name””);b)b) String str=(String)request.getAttribute(“name name””);c)c) Object str=request.getAttribute(Object str=request.getAttribute(““name name””);d) 无法取出来3.3.编写编写Servlet Servlet 的的doPost 方法时,需要抛出异常为()。
J2EE练习题

J2EE练习题一、填空题1.J2EE的核心是一组技术规范与指南,它给开发人员提供一个应用标准,定义了一个标准的__应用体系结构__。
2.J2EE容器主要包括四种容器:Web容器、EJB容器、Applet容器及_Application Client容器_。
3.Web容器属于服务端容器,支持的组件主要是JSP组件与___Servlet组件___。
4.Sevlet组件在服务器端运行,能够动态生成___Web页面_。
5.不论开发Java应用还是J2EE项目,开发环境都必须以___JDK___为基础。
6.Sevlet容器在创建Sevlet实例后,最先要自动调用的方法是__init()方法___,以实现初始化,如果不成功,则直接卸载该实例。
7.Web应用系统所采用的体系除了JSP外,还有一种依赖于IIS的__ASP___的类型。
8.通过运行SQL语句,返回查询结果的JDBC接口类是__ ResultSet接口____。
9.与无状态会话EJB相比,实体EJB生命周期中,增加了一种状态是__共享池状态___。
10.J2EE应用服务器支持的组件有Sevlet组件、JSP组件、__EJB组件___等。
11.在J2EE的不同容器中,属于客户端容器的有Applet容器及___ Application Client 容器__。
12.数据源的配置方式一种是配置公共数据源,另一种是在服务器上配置___私有数据源____。
13.ODBC总体结构中包括的组件是_应用程序___、驱动程序管理器、.驱动程序、数据源。
14.在有状态会话级组件实例提供的方法中,用来结束EJB的生命同期的方法是__ejbRemove()_。
15.J2EE容器包括的服务端容器有web容器、__EJB容器___。
16.Servlet的生命周期中,按行后顺序的各阶段是加载、_初始话_、响应请求、提供服务、销毁17.动态INCLUDE用jsp:include动作实现它总是会检查所含文件中的变化,适合用于__包含动态页面___,并且可以带参数。
J2EE架构与应用开发测试题目(附答案)

复查测验:测试题目一问题1A. java to more enterpriseB. java 2 mobile editionC. java 2 micro editionD. java 2 mini edition正确答案: C. java 2 micro edition问题2 servletA. init()B. server()C. service()D. destroy()正确答案: C. service()问题3 WEB-INFA. HTMLB. JSPEC. 图片D. web.xml正确答案: D. web.xml问题4 Web/EJB/ApplicationA. JARB. EARC. WARD. ZIP正确答案: B. EAR问题5 下列哪个不是JSP可以直接使用的内置变量: D. serviceA. requestB. sessionC. exceptionD. service正确答案: D. service问题6 下面哪个不是EJBA. JbossB. WebLogicC. WebSphereD. Apache正确答案: D. Apache问题7 web.xmlA. ServletB. JSPC. JavaBeanD. HTML正确答案: A. Servlet问题8 关于JavaScriptA. 一种Java语言B. 运行在客户机上C. 运行在服务器上D. 被编译后执行正确答案: B. 运行在客户机上问题9 四类JDBCA. JDBC-ODBC驱动桥B. JDBC本地驱动C. JDBC网络驱动D. 纯java驱动正确答案: D. 纯java驱动问题10 下面关于JSP说法错误的是 D. 不能给JSP页面添加过滤器。
A. 访问JSP页面时,容器首先将JSP页面翻译成一个Java文件B. 不是每一个JSP页面都能够访问exception对象C. 一个HTML文件重新命名为JSP文件,这个JSP文件也能够被正确访问D. 不能给JSP页面添加过滤器正确答案: D. 不能给JSP页面添加过滤器问题11 War中不能包含的是 D. EJB。
j2ee考试题汇总

j2ee考试题汇总2. 下面( )声明当前页为error页A.<%@ page errorPage="true" %>B.<%@ page info="error" %>C.<%@ page pageEndcoding="error" %>D.<%@ page isErrorPage="true" %>★标准答案:D3. Java Web应用中往往通过设置不同作用域的属性来达到通讯的目的。
如果某个对象只在同一请求中共享,通过调用哪个类的setAttribute方法设置属性,B. ServletRequestListenerC. HttpSession★标准答案:C6. executeUpdate返回的类型是A. intD.受影响的记录数量★标准答案:A7. Oracle数据库的JDBC驱动程序类名及完整包路径为★标准答案:D8. JSP中可使用一些隐含对象,通过什么可以访问浏览器输入的参数A. paramB. requestScopeC. sessionScope★标准答案:A11. 开发者编写带属性的bean类,以表示动画的协调。
为允许目标应用访问和改变此属性,开发者必须编写什么方法()()方法() 方法.和mutator 方法.() 方法和 setAsText()方法.★标准答案:C12. JavaBean作为( )文件分发。
A..jarB..mftC..javaD..class★标准答案:A13. 什么是远程接口( )A.这样的接口,它监听客户调用的远程方法调用并重定向对服务器上的远程RMI服务器的调用。
B.用唯一名注册的远程对象的接口。
C.其声明的方法可被客户远程地调用的接口。
D.声明和定义了可被客户远程地调用的方法的接口。
★标准答案:C14. HttpServlet 类的( )方法处理HTTP POST 请求(ServletRequest, ServletResponse)(HttpServletRequest, HttpServletResponse)(HttpServletRequest, HttpServletResponse)(ServletRequest, ServletResponse)★标准答案:C15. 用以下方法中哪一个把目标应用作为bean 激活的定制事件的监听者(listener)注册( )AaddPropertyChangeListener()firePropertyChange()()addXXXListener()★标准答案:D16. 下面的( )代码加到doGet()方法中,可以正确的计算一个用户的GET请求session = ();int count = (int) ("count");("count", count++);session = ();int count = ((Integer) ("count")).intValue();("count", count++);session = ();int count = ("count");("count", count++);session = ();int count = ((Integer) ("count")).intValue();("count", new Integer(count++));"★标准答案:D17. 下列哪个接口用于获取关于数据库的信息()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、描述一下你对J2EE的认识J2EE(Java 2 Platform,Enterprise Edition)是SUN公司定义的一个开发分布式企业级应用的规范。
它提供了一个多层次的分布式应用模型和一系列开发技术规范。
多层次分布式应用模型是指根据功能把应用逻辑分成多个层次,每个层次支持相应的服务器和组件,组件在分布式服务器的组件容器中运行(如Servlet组件在Servlet容器上运行,EJB组件在EJB容器上运行),容器间通过相关的协议进行通讯,实现组件间的相互调用。
遵从这个规范的开发者将得到行业的广泛支持,使企业级应用的开发变得简单、快速。
2、J2EE标准规定有那六种角色?A、J2EE产品提供商B、工具提供者商C、应用组件提供商D、应用程序组装者E、部署者F、系统管理员3、说出J2EE包括那些技术,并对其进行简单描述(至少说出六中)J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,下面对J2EE中的13种技术规范进行简单的描述(限于篇幅,这里只能进行简单的描述):·JDBC(Java Database Connectivity):JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题,另外,JDCB对数据库的访问也具有平台无关性。
·JNDI(Java Name and Directory Interface):JNDI API被用于执行名字和目录服务。
它提供了一致的模型来存取和操作企业级的资源如DNS和LDAP,本地文件系统,或应用服务器中的对象。
·EJB(Enterprise JavaBean):J2EE技术之所以赢得某体广泛重视的原因之一就是EJB。
它们提供了一个框架来开发和实施分布式商务逻辑,由此很显著地简化了具有可伸缩性和高度复杂的企业级应用的开发。
EJB规范定义了EJB组件在何时如何与它们的容器进行交互作用。
容器负责提供公用的服务,例如目录服务、事务管理、安全性、资源缓冲池以及容错性。
但这里值得注意的是,EJB并不是实现J2EE的唯一途径。
正是由于J2EE 的开放性,使得有的厂商能够以一种和EJB平行的方式来达到同样的目的。
·RMI(Remote Method Invoke):正如其名字所表示的那样,RMI协议调用远程对象上方法。
它使用了序列化方式在客户端和服务器端传递数据。
RMI 是一种被EJB使用的更底层的协议。
·Java IDL/CORBA:在Java IDL的支持下,开发人员可以将Java和CORBA 集成在一起。
他们可以创建Java对象并使之可在CORBA ORB中展开, 或者他们还可以创建Java类并作为和其它ORB一起展开的CORBA对象的客户。
后一种方法提供了另外一种途径,通过它Java可以被用于将你的新的应用和旧的系统相集成。
·JSP(Java Server Pages):JSP页面由HTML代码和嵌入其中的Java代码所组成。
服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
·Java Servlet:Servlet是一种小型的Java程序,它扩展了Web服务器的功能。
作为一种服务器端的应用,当被请求时开始执行,这和CGI Perl脚本很相似。
Servlet提供的功能大多与JSP类似,不过实现的方式不同。
JSP通常是大多数HTML代码中嵌入少量的Java代码,而servlets全部由Java写成并且生成HTML。
·XML(Extensible Markup Language):XML是一种可以用来定义其它标记语言的语言。
它被用来在不同的商务过程中共享数据。
XML的发展和Java是相互独立的,但是,它和Java具有的相同目标正是平台独立性。
通过将Java和XML的组合,您可以得到一个完美的具有平台独立性的解决方案。
·JMS(Java Message Service):JMS是用于和面向消息的中间件相互通信的应用程序接口(API)。
它既支持点对点的域,又支持发布/订阅(publish/subscribe)类型的域,并且提供对下列类型的支持:经认可的消息传递,事务型消息的传递,一致性消息和具有持久性的订阅者支持。
JMS还提供了另一种方式来对您的应用与旧的后台系统相集成。
·JTA(Java Transaction Architecture):JTA定义了一种标准的API,应用系统由此可以访问各种事务监控。
·JTS(Java Transaction Service):JTS是CORBA OTS事务监控的基本的实现。
JTS规定了事务管理器的实现方式。
该事务管理器是在高层支持Java Transaction API (JTA)规范,并且在较底层实现OMG OTS specification的Java映像。
JTS事务管理器为应用服务器、资源管理器、独立的应用以及通信资源管理器提供了事务服务。
·JavaMail:JavaMail是用于存取邮件服务器的API,它提供了一套邮件服务器的抽象类。
不仅支持SMTP服务器,也支持IMAP 服务器。
·JAF(JavaBeans Activation Framework):JavaMail利用JAF来处理MIME编码的邮件附件。
4、J2EE规范定义了那四个层次?(1)、客户端层(Client Tier)客户端层用来实现企业级应用系统的操作界面和显示层。
另外,某些客户端程序也可实现业务逻辑。
可分为基于Web的和非基于Web的客户端两种情况。
基于Web的情况下主要作为企业Web服务器的浏览器。
非基于Web的客户层则是独立的应用程序,可以完成瘦客户机无法完成的任务。
(2)、Web层为企业提供Web服务。
包括企业信息发布等。
Web层由Web组件组成。
J2EE Web组件包括JSP页面和Servlets。
Web 层也可以包括一些JavaBeans。
Web层主要用来处理客户请求,调用相应的逻辑块,并把结果以动态网页的形式返回到客户端。
(3)、业务层(Business Tier)业务层也叫EJB层或应用层,它由EJB服务器和EJB组件组成。
一般情况下许多开发商把Web服务器和EJB服务器产品结合在一起发布,称为应用服务器。
EJB层用来实现企业级信息系统的业务逻辑。
这是企业级应用的核心,由运行在业务层中的EJB来处理。
一个Bean从客户端接收数据、处理,然后把数据送到企业信息系统层存储起来。
同样,一个Bean也可以从企业信息系统取出数据,发送到客户端程序。
业务层中的EJB要运行在容器中,容器解决了底层的问题,如事务处理、生命周期、状态管理、多线程安全管理、资源池等。
(4)、企业信息系统层(Enterprise Information System tier)处理企业系统软件,包括企业基础系统、数据库系统及其他遗留的系统。
J2EE将来的版本支持连接架构(Connector Architecture)。
它是连接J2EE平台和企业信息系统层的标准API。
业务层和Web层共同组成了三层J2EE应用的中间层,其他两层是客户端层和存储层或企业信息系统层。
5、简要说明一下EJB有那些角色(1)、EJB提供者EJB提供者,即EJB的开发者。
对于多数企业级应用开发者来说,都属于这个角色。
EJB提供者的产品是个包含一个或多个EJB的打包文件(即ejb-jar文件)。
EJB提供者负责业务逻辑方法的Java语言实现;定义EJB的远程和主接口方法和EJB的部署描述符。
部署描述符包括EJB的结构信息(如EJB类的名字)和EJB用到的其它所用资源的描述信息。
EJB提供者是个应用领域的专家。
负责开发实现业务任务和逻辑实体的可重用的EJB。
不必是系统级的程序专家,也不必考虑程序的事务并发性、安全性、分布性等问题,这些问题都是由容器解决的。
(2)、EJB应用装配者应用装配者把EJB装配成更大的可部署的应用单元。
有时这个工作也由EJB提供者完成。
EJB装配者的输入是EJB 提供者生产的一个或多个ejb-jar文件,输出是一个或多个包含EJB和应用装配信息的ejb-jar文件。
前者ejb-jar文件的扩展名一般是JAR(Java Archive),后者ejb-jar文件的扩展名可以是WAR(Web Application Archive)或EAR(Enterprise Application Archive)。
应用装配者把应用装配信息插入到部署描述符中。
应用装配者也可以把其它应用类型的组件(如JSP,JavaServerPage)装配到EJB应用中(这就象在PetStore例子中看到的那样)。
应用装配者工作的对象是EJB部署描述符和EJB客户端视图合约。
虽然他必须熟悉EJB的远程接口和主接口,但他不必具有任何实现EJB开发的知识。
(3)、EJB部署者部署者把从EJB提供者和应用装配者那里获取的一个或多个ejb-jar文件中EJB部署到一个指定的环境。
有时这个工作也由EJB提供者完成。
这个环境包括特定的EJB服务器和容器。
部署者通常会使用EJB容器提供者提供的部署工具(如WebLogic Server提供的weblogic.ejbc工具),来EJB提供需要的外部资源并绑定这些资源,同时必须符合应用装配者定义的指令。
部署者的产品是定制到特定环境的EJB,这个产品只能被部署在那个特定的容其中。
也就是说,EJB的部署是与服务器平台相关的。
部署者是应用环境的操作专家,负责与EJB部署相关的工作。
如:他负责把应用装配者定义的安全角色和EJB部署环境中的用户组及账号对应起来,实现它们的映射。
EJB容器提供者提供的部署工具用来完成部署工作,这个过程分两个阶段:(A)、部署者首先生成附加类和接口,确保容器能管理EJB的运行。
这些附加的类是和特定容器相关的。
(B)、部署者完成EJB和附加类及附加接口的安装。
(4)、EJB服务器提供者EJB服务器提供者,即生产EJB服务器的厂家。
目前符合EJB规范的服务器产品有十几种,如WebLogic Server,Websphere,iPlanet等。
EJB服务器提供者是分布式事务、分布式对象和其它低级系统级服务的专家。
一个典型的EJB服务器提供者可能是操作系统生产者、中间件生产者或数据库生产者。
目前EJB架构假定EJB服务器提供者和EJB容器提供者是同一个生产者,因此没有定义EJB服务器提供者的任何接口需求。
(5)、EJB容器提供者容器提供者提供了:(1)部署EJB需要的部署工具。