J2EE 1.4 的新特性

j2ee-1.4.jar j2ee-1.4.jar j2ee-1.4.jar j2ee-1.4.jar j2ee-1.4.jar 立即下载
标题:J2EE 1.4 的新特性:概述 浏览次数: 1027 时间:2004-04-29
作者:Dave Landers

J2EE开发人员所需掌握的技术列表是相当冗长的。在这篇文章里,我们不会讨论J2EE技术,甚至也不会讨论新技术。我们将要探讨的是它的一些主要的新特性,然后您就会知道要在J2EE项目中使用哪些特性。
J2EE 1.4带来了一些新的且很有趣的特性。他们始终围绕着三个主要的主题:Web 服务、消息传递和较容易的Web开发。要满足这些主题的需要,组成J2EE的所有主要规范都得到升级--大多数规范都很重要。最主要的(也是最多的)升级是JCA 1.5规范和JSP 2.0规范以及J2EE规范本身。此外,还有一些规范也是新的(或者对J2EE来说是新的)--例如:JAX-RPC、Web 服务以及J2EE部署和管理规范。


新规范
在J2EE 1.4中包含了一些新的规范和技术。总体来说,在对J2EE最重要的扩充内容中,绝大部分是用于支持Web 服务或XML的。其中最重要的几个是:

Web services for J2EE (JSR-109)
这个新的规范描述了Web 服务怎样作为servlet或EJB无状态会话Bean来部署。最引人注目的变化是增加了新的部署描述符,这种描述符将支持把组件作为Web 服务来部署。

JAX-RPC 1.1
JAX-RPC是用于使用SOAP进行远程过程调用的Java API。使用这些API,就可以用远程对象调用Web服务。在J2EE中使用JAX-RPC的方式和调用远程EJB非常相似。

JAX-RPC规范也定义了一个Web服务(通过其WSDL)映射到Java接口的方式。JAX-RPC的实现还包括一些工具,用于从WSDL生成接口、存根等等,或者从接口生成WSDL。

J2EE 在 Web 服务的服务器端和客户端都使用了JAX-RPC。在J2EE中实现的Web服务(作为servlet 或者 EJB)将会用到JAX-RPC 接口。而如果一个组件要远程调用Web服务,它就会把JAX-RPC用作远程接口。

SAAJ 1.2
SAAJ是SOAP with attachments API for Java(用于Java的带有附件API的SOAP),它允许那些在SOAP调用中传递的附件可以被Java访问。

JAXR
JAXR是用于XML注册表的Java API,这些API 用来访问Web 服务注册表,比如 UDDI、ebXML和OASIS。很不幸,J2EE不要求支持任一特定注册表,但可用使用API且实现该API。

XML支持
现在J2EE 1.4规范要求支持SAX 2、DOM level 2、XML架构和命名空间,还要求支持XSLT。如果您正在编写操纵XML的J2EE应用程序,则您现在必须支持最新的版本才能工作。

J2EE管理和部署API(JSR-77和JSR-88)

这两种API被工具和IDE供应商所关注。它们提供了一套供应商无关的API,用来控制J2EE应用服务器上的管理和部署活动。这使得IDE(或我们自己开发的工具)可以很轻松地同各种各样的应用服务器交互,而无需使用特定于供应商的大量API。

规范的变化

J2EE所包含的所有规范在J2EE 1.4中都不同程度上有了些变化。但有些变化很微小,但是J2EE的"四大件"(EJB、JCA、servlets和JSP)都增加了重要的的新特性。

下面对其中最重要的变化进行介绍:

Enterprise Java Beans 2.1
EJB 2.1规范的改进主要在于Web服务和消息传递。这将在下面详细说明。不过EJB 2.1还增加了计时器服务并增强了容器管理的实体bean的EJB-QL查询语言。

新的计时器服务允许任何EJB(除了有状态的会话bean)进行注册,以获得来自容器的基于时间的回调功能。EJB能够请求一个特定时间后(如10秒钟)的单个回调信号,或者也可以安排定期(如每10分钟)回调。这个特性在有些情况下会很有帮助,但是同时也存在着被大大误用的潜在可能--这只能让时间来告诉我们答案了。

对EJB-QL的增强是操作符ORDER BY、SUM、COUNT、AVG、MAX、MIN和MOD。大多数的应用服务器在他们的特定于提供商的扩展中都会提供这些操作符。而现在,他们最终被写入了规范。

Enterprise Java Beans 2.1--Web服务端点
对Web服务来说,EJB 已经加入了把无状态会话 bean 作为Web服务来使用的能力。这种能力可以被用来实现新的Web服务或者通过Web服务接口把先有的EJB公布出去。

把一个现有的无状态会话bean转化成一个Web服务端点是相对容易的。从远程接口生成WSDL(使用JAX-RPC工具),然后在ejb-jar.xml文件中加入一个service-endpoint元素。这个service-endpoint元素无论看起来还是用起来都像是访问您的EJB的另一个接口--这样您的EJB 现在就拥有了全部或部分的远程的、本地的和Web服务端点的接口。接着,添加一个部署描述符webservices.xml,文件中包含service-impl-bean 和ejb-link两个元素。这样就把WSDL连接到了EJB上并通知应用服务器通过Web容器把它公布出去。

同样,可以把现存的Web服务作为无状态会话 bean来实现,除非您使用JAX-RPC工具从WSDL来生成接口。

Enterprise Java Beans 2.1--Web 服务客户端
EJB 2.1规范现在明确允许任何一个EJB可以成为某个Web服务的客户端(通过JAX-RPC接口)。调用Web服务和调用另外一个EJB的方式极其相似。使用部署描述符中的service-ref元素,Web服务会被映射,这样您可以使用"java:comp/env/"的名字在JNNI中查询这个服务。

顺便说明,这一技术不仅在EJB中可以使用,而且可以在任何J2EE组件中使用--所以,您还可以在servlets 或者JCA适配器中来调用Web服务。

Enterprise Java Beans 2.1--消息传递
EJB对消息传递的改进是和Java Connector Architecture紧密联系在一起的。EJB 2.1规范改进了消息驱动的bean(MDB:message-driven bean),使之允许任意的(非JMS)消息类型。同样,一个消息连接工具也被添加到部署描述符中,用来指定组件发送消息的MBD或JMS目的地(这和ejb-ref允许您把EJB"勾"在一起的方式是很相似的)。

J2EE Connector Architecture 1.5
JCA 1.5规范有了很大的变化。JCA 1.5的新变化是入站源适配器,它允许一个外部服务(如一个EIS系统)给应用服务器发送消息。所以说JCA现在变成了双向的。伴随它的是一个消息连接工具,该工具把入站适配器和处理这个消息的MDB连接起来。在这里这个主要用例是和消息驱动的bean(MDB)联系在一起的,入站适配器接收信息,处理信息生成消息,再把消息进行排队以供MDB进行处理。这一特性的关键就在于MDB的变化使用非JMS的消息类型。
JCA其他方面的改进包括对管理所有实现异步入站适配器所需线程的工作管理系统的改进。工作管理器允许JCA使用线程,但不会与其线程的应用程序管理发生冲突。

Servlet 2.4
Servlet 2.4规范中Web服务方面的变化主要在于把JAX-RPC类作为servlet部署来实现Web服务端点的能力。这给实现Web服务提供了一种容易的方式。

编写一个基于servlet的Web服务端点和创建一个基于EJB的端点几乎毫无二致。使用JAX-RPC工具从WSDL创建接口(或者是从接口创建WSDL),再在一个普通的JAVA类中实现这个接口。然后用servlet元素(但不使用servlet-mapping)在web.xml中声明这个类,再创建一个包含service-impl-bean和servlet-link元素的webservices.xml描述符文件。

Servlet 2.4也增加了listener来取得属性(这就像现有的已经可用的会话属性监听器)。

SingleThreadModel也不赞成使用了。如果您用过这个接口,您一定已经知道实际上它并不能真正地解决Serverlet的实时并发问题。SingleThreadModel只能保护单进程Serverlet的域和方法,但是,毫无疑问,它没有保护其他资源的能力(像那些静态方法中的引用,或者HttpSession中的对象)。因此,SingleThreadModel将不赞成使用,同时必将会被一种好的、线程安全的编程实践所替代。

Java Server Pages 2.0
JSP规范终于成熟了。在JSP 2.0中,终于可以编写无脚本的页面(没有任何"<% … %>"之类属于Java的代码)。

第一个改进就是增加了表达式语言(expression language,EL),表达式语言来源于JSP标准标记库(JavaServer Pages Standard Tag Library,JSTL)。EL是一种简单、精致和易用的语法,这种语法不再需要大部分的 "scriptlet"。EL是基于ECMAScript (JavaScript) 和XPath的,所以,它的语法对于大多数Web开发者来说都会感觉似曾相识。

在JSP 2.0中也一样改进了标记库。现如今,我们有更简单的API来书写标记了。SimpleTag接口具拥有更简单简洁的生命周期--只有一个doTag 方法并且没有实例缓冲池和重用。SimpleTag和它的JSPFragment搭档(用来评估标记体)可以完成现如今大多数 "classic tags" 所做的事情,不过和以前相比,可要省力气多了。此外,这些更为简单的API意味着标记可以更容易地正确实现,这也就意味着bug更少。

另外一个对标记的改进在于编写标记文件的能力。这些标记是作为JSP文件而不是Java类来实现的。编写标记文件是简单的,而部署就更简单了--您只要简单的把这些文件以类似foo.tag的名字放入WEB-INF/tags就万事大吉了。不需要编写TLD描述符文件,因为所有的重要信息都在标记文件其自身中进行了声明。

标记文件最大的优势是在一些可视HTML元素需要标记之时。例如,对持续格式化bean的输出。以前,必须把HTML嵌入到Java代码或采取包含页面的方式。但是标记文件是这种类型的功能最自然的用法。这也向那些非Java开发者打开了自制创建标记的大门。 JSP 2.0 还改进了用于支持XML的语法,加入了对JSR-45的支持,以及对其他语言的调试支持。

JSTL
JSP标准标记库(JavaServer Pages Standard Tag Library,JSTL)是一个非常有用的标记的集合。这些标记和JSP2.0在其他方面的改进很好的融合了起来。不幸的是,JSTL并不是JSP 2.0规范的必需组成部分。不过,由于它是如此得有用,而且获得了广泛的支持(例如从Sun 到 Apache),实在值得我们在此提及一下。

总结
在新的版本中充满了新的内容,那么问题是如何来使用他们呢?

Web 开发
JSP规范的所有这些改变都极大地改进了Web开发体验。大家终于有可能编写不内嵌Java代码的JSP页面了。并且,简单标记和标记文件的可选性使标记变得更易编写且更易使用。在用户界面(视图)和后端(控制器)之间的分离也更好了。

消息传递
消息传递在MDB 和JCA方面的改进有很多意义。首先,显而易见的是--应用服务器和EIS之间的双向通讯会增进J2EE与现有企业的集成。

但是其他的好处还远远不止这些。首先,除了那些被容器(RMI、IIOP和HTTP)所拥有的socket外,入站适配器有"权"创建和监听socket。所以,比如说,您可以添加一个JCA适配器来使您能telnet到应用服务器来执行一些管理任务。或者,也可以将FTP服务器部署为标准的J2EE JCA组件,也可以实现邮件服务器。这种可能性是无穷尽的。

另外一种可能性(这在规范中已有明确说明)是JMS提供者。J2EE规范要求应用服务器必须实现JMS--但并没有指明对特定消息传递系统的任何要求。因此,每个消息提供商通常要实现他们自己的消息系统来支持JMS。并且,他们通常必须有外部系统与他们一同工作才能进行通讯。

有了J2EE 1.4,消息提供商现在已经有可能创建自制他们的JMS支持,像一个符合J2EE的标准、可移植的JCA适配器一样。适配器的入站一端可以处理消息使用者,而出站一端处理发布者。然后,这个JCA能够被部署到任何J2EE 1.4应用服务器中。这样就使其拥有了改进应用服务器之间的互操作性的潜在能力,至少对于JMS消息是这样的。

Web 服务
有了J2EE 1.4规范,J2EE已经和Web服务稳固的结合在了一起。这就有了多种选择。

首先,如果您有现有的基于EJB的系统,则只要简单地在部署描述符中添加JAC接口以及一些条目,任何无状态会话bean都可以当作Web服务来发布。这就打开了现有部署和Web服务的互操作性。

对于新的Web服务,您可以像上面一样编写EJB的实现,也可以编写简单的Java类(使用JAX-RPC)。不管采用哪种方式,您都可以通过一些部署描述符条目进行部署。

此外,您还可以利用J2EE应用程序中的任何Web服务,方法是,在执行任何其他远程调用时,使用JAX-RPC来调用Web服务。

结束语
对J2EE 1.4的增强都是不容置疑的,并且应增强J2EE平台的有用性和能力。JCA和MDB方面的改进用来增强企业后端。增加对Web服务的支持改进了J2EE的有用性和互操作性。而对于那些希望开发基于Web的用户接口的人员来说,JSP的改进则降低了他们使用的门槛。总之,这是一个很棒的组合。

现在,最困难的事情摆在了您--J2EE开发者--的面前,您需要判定,如何来在您的项目中对所有这些好东西加以选择取舍。这将是件乐趣无穷的事情。

J2EE JAR包(J2EE1.3 J2EE1.4 J2EE5.0 ) J2EE JAR包(J2EE1.3 J2EE1.4 J2EE5.0 ) 1.3--5.0 J2EE的jar包 立即下载

相关推荐

j2ee 1.4所有jar包

activation.jar javax.servlet.jar javax.servlet.jsp.jar jboss-j2ee.jar jboss-jaxrpc.jar jboss-jsr77.jar jboss-saaj.jar mail.jar namespace.jar xml-apis.jar

J2EE Web服务开发系列之七: J2EE 1.4 平台和Web服务

本文是J2EE Web服务开发系列文章的第七篇,在本系列文章的前面各主题中,着重介绍了在J2EE1.3平台下使用各种技术或者工具进行Web服务开发。从本文开始,将介绍J2EE1.4平台下的Web服务开发。本文首先介绍了J2EE1.4平台中Web服务的构架,然后分别介绍了J2EE1.4平台中Web服务的最新规范和最新技术,接下来介绍了开发Web服务使用的API以及J2EE Web服务开发步骤,最后介

happy4374的专栏 1589

J2EE1.4Web技术应用

北京火龙果软件工程技术中心Sun的Java2EnterpriseEdition(J2EE)平台已经成为使用最广泛的Web程序设计技术,该技术主要支持两类软件的开发和应用:一类是做高级信息系统框架的Web应用服务器(Webapplicationserver),另一类是在Web应用服务器上运行的Web应用程序(Webapplication)。大家知道,全球主要的商业网站和管理信息系统大多采用J2EE平台作为首选的Web开发技术,每一个Web应用服务器都将需要企业开发和运行多种Web服务软件;最近几年,J2EEWeb程序的开发已经成为信息系统的关键,熟悉并能熟练运用J2EE技术的软件工程师已经成为炙

J2EE 1.4 基础 指引

//2006-01-05 23:28这篇文章我打算总结一下我认为J2EE中比较重要的东西.只希望起到抛砖引玉的作用,详细的细节有很多书可以看,此处因时间有限,只点到为止.在我开始学习J2EE基础的时候,最开始的时候是不明白Servlet到底该是怎么配置的,为什么会有这样的配置格式.当我在寒假中第一次把我配制成功的Servlet运行起来的时候,心里别提多开心了,还认真的把配置的例子抄在了一个

Eric77的专栏 2283

【数据分享】中国371个城市的坡度矢量数据和excel数据

在城市发展的进程中,地形地貌始终是影响规划决策的关键因素,而坡度作为表征地表倾斜程度的核心指标,更是贯穿于城市建设、生态保护等诸多环节。本文将全面解读中国 371 个城市坡度数据的相关情况,包括数据概况、生成流程、应用场景等内容,为读者呈现一份详尽的坡度数据指南。

qq_39719713的博客 1844

固态变压器SST 1.1 课程整体框架与学习路径

本课程围绕固态变压器(SST)全生命周期工程化流程设计,构建"规范要求-理论基础-设计方法-仿真验证-工程落地"的闭环学习体系,完整覆盖GB/T 40429-2021标准要求。课程分为基础认知、核心设计、合规验证、工程落地和前沿拓展五大模块,采用理论讲解与工程实践深度融合的教学路径,通过规范条款拆解、仿真预验证、硬件实现、试验检测等环节,培养学员从设计到落地的完整能力。课程强调标准合规性,每个设计环节均有明确规范约束,并提供标准化工程模板,确保学习成果可直接应用于实际项目开发。

技术工作者 990

J2EE 1.4 技术规范

J2EE 1.4 技术规范:

boox 325

哨兵一号数据snap预处理_利用SNAP软件进行Sentinel-1A卫星微波影像的预处理

利用SNAP软件对雷达影像进行预处理,主要包括热噪声去除、轨道文件校正、辐射定标、滤波校正、多普勒地形校正,最终获得入射角和后向散射信息。数据:本次实验所用数据为哨兵一号(Sentinel-1A)干涉宽幅模式(Interferometric Wideswath,IW)下经过多视处理和地距转换的GRD格式产品一般处理流程如下:0 SNAP软件安装软件安装:安装成功后打开SNAP后如图所示:1 数据...

weixin_30000407的博客 1万+

Mark Hapner谈J2EE 1.4新特性

Mark Hapner谈J2EE 1.4新特性对于Sun J2EE技术的发展方向,Mark Hapner是一个关键性的人物:Mark是J2EE技术规范的带头人,也是Sun在WS-I(Web服务互操作性)组织的的代表,他曾经参与了JDBC、EJB、JMS等技术规范的制订。在最近接受TheServerSide网站的采访时,Mark Hapner谈到了与J2EE 1.4相关的一些技术问题。在这个

透明思考@优快云 1919

22、狭义相对论与曲线坐标空间相关知识解析

本文深入解析了狭义相对论与曲线坐标空间的核心概念,涵盖能量-动量张量的定义与守恒、曲线坐标系下的度量张量与基向量性质、协变与逆变张量的变换规则,并介绍了克里斯托费尔符号与协变导数的计算方法。进一步探讨了在弯曲空间中进行微积分运算的基础理论及其在广义相对论中的关键应用,如爱因斯坦场方程如何描述物质-能量对时空曲率的影响,为理解黑洞等引力现象提供了理论框架。

lambda的博客 115

【Linux命令大全】006.网络通讯之write命令(实操篇)

Linux write命令摘要 write是Linux系统中用于用户间实时通讯的命令工具,允许向其他登录用户的终端发送消息。主要功能包括: 基本使用:通过write username向指定用户发送消息,Ctrl+D结束输入 终端指定:当用户登录多个终端时,可用write username tty指定目标终端 实用技巧: 使用who查看在线用户 通过管道发送单行消息:echo "内容" | write user 支持多行消息发送和简单聊天会话。

yuhuasheng1997的博客 213

J2EE1.4新特性之Servlet2.4新特性

在J2EE1.4最新的Servlet 2.4版中,加入了一些新的功能,下面我们介绍其中主要的常用功能。 1、XML Schema定义Web查询部署描述文件 Servlet 2.3之前的版本使用DTD作为部署描述文件的定义,其web.xml的格式为如下所示:   &lt;?xml version="1.0" encoding="IS0-8859-1"?&gt; &lt...

xttifqqk的专栏 156

通过Simulink搭建一个智能微电网能量管理系统(Energy Management System, EMS)

通过上述代码实现,您可以逐步创建一个智能微电网能量管理系统。多源能量集成:整合光伏、风力发电、柴油发电机、电池储能等多种能源资源。负荷预测与调度:基于历史数据和天气预报,预测未来负荷和可再生能源输出,进行优化调度。储能系统优化:设计合理的充放电策略,确保储能系统的高效利用和寿命延长。经济性分析:评估不同运行模式下的经济性,考虑电价、维护成本等因素。环境影响评估:分析微电网对环境的影响,如减少碳排放、提高可再生能源利用率等。硬件在环仿真(HILS)

amy_mhd的博客 314

J2EE1.4新特性之JSP 2.0的新特性

 SUN 的新版J2EE1.4提的增强,在应用程序部署和强,提升了J2EE开发Web应简化的标记库等;EJB 2.1API把通常的Jdbc API与扩供了对双向通信的支持。下Jdbc3.0以及EJB2.1方面的 供了在J2EE中开发Web Service服务器管理方面也提供了新的标用程序的能力;在编程模型方面中提供了新的timer服务,查询充API结合起来;J2EE Connecto...

weixin_30700977的博客 227

锂电池寿命预测 | Pytorch实现基于Transformer 的锂电池寿命预测(NASA数据集)

锂电池寿命预测 | Pytorch实现基于Transformer 的锂电池寿命预测(NASA数据集)

算法如诗的博客 5585

PCL 欧式聚类分割【2026最新版】

PCL中欧式聚类提取算法原理详解、代码实现以及一个大自然场景地物分割提取并保存分割结果到本地文件夹的应用案例。

点云侠的博客 40万+

NetBeans的J2EE特性

如何使用NetBeans 4.1? 使用NetBeansTM IDE 4.1 将会非常详细地告诉你,而且是中文版的。据说NetBeans 4.1集成了许多新特性来支持J2EE,如何使用NetBeans 4.1来进行J2EE的开发? J2EE 1.4 Tutorial for NetBeans IDE 将是你选择了NetBeans 4.1来进行J2EE开发的最爱。很多时候,我们熟悉J2EE的开发,也

Sarkuya的编程园地 1995

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

J2EE1.4新特性之EJB2.1的新特性

EJB 2.1中的新特性主要集中于有关SOAP和WSDL的Web服务,包括两种新推出的Web服务应用程序接口(JAX-RPC和JAXM)。它们可以用来与其他Web服务模块通信,并适当地在Web模块中运用无状态的bean和消息驱动bean。也就是说,基于新的标准,EJB将逐渐成为Web服务的开发平台。全文阅读:http://www.javah.net/EJBjishu/20070604/22

zaowei21的专栏 537

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

我们为什么需要Java EE 5.0?

 我们为什么需要Java EE 5.0?作为主流中间件技术标准J2EE诞生6年后的下一代企业级开发规范,Java EE 5.0从一开始就倍受关注,引发了无数辩论和众多期盼。它重点关注目前Java应用开发的热点:运行可靠性、开发效率、扩展灵活性及企业应用整合,顺应轻量级、简单化趋势,给开发者和企业带来真正的实惠。什么是Java EE 5.0?“Do more with less work”,这是

软件开发资料汇总 271

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

上一篇: 用JAVA访问共享文件系统
下一篇: 测试J2EE Web Services
fraternity_java
博客等级 码龄22年 1粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值