【AICon】探索八个行业创新案例,教你在教育、金融、医疗、法律等领域实践大模型技术! >>> 了解详情
写点什么

开源 Servlet 容器 Jetty 7.0 发布

  • 2009-10-13
  • 本文字数:1155 字

    阅读完需:约 4 分钟

10 月 8 号,Jetty 7.0宣告发布,人们可由位于 Eclipse.org 上的新主页或通过 Maven Repository 下载。该版本不仅代表了 Jetty 6.0 的一次演变,而且还代表了代码库的重大调整和诸多性能改进。

InfoQ 曾在今年早些时候报道过 Jetty 投入 Eclipse 的怀抱;在 Jetty 6.0 依旧还将得到支持的同时,新的特性将针对 7.0 开发。Jetty 6.0 和 7.0 的基础都是 Servlet 2.5 API;处于试验阶段的 Jetty 8.0 将支持 Servlet 3.0 API,该规范有望于明年正式完成。

Jetty 6.0 的一个关键特性是在 Servlet 层引入了延续(Continuation),这将使长活动的客户端连接(如那些使用了 CometD ——又被称为 Bayeux 协议——的连接)成为可能。InfoQ 以前曾报道过 Jetty 6.0 的发布以及几个延续的示例,它们展示了在不向线程数目(以及相关开销)妥协的条件下,延续是如何被用来支持大规模并发用户的。

该技术的成功导致了Jetty 建议在 Servlet 3.0 规范草案中加入异步 Servlet。Jetty 7.0 实现的这些延续既可以无需修改就运行于 Servlet 3.0 实现之上,同时还可以向后应用于非 Jetty 的 Servlet 2.5 实现(非异步、阻塞)中。

由于迁移到了 Eclipse,因此代码也经过了重构(org.mortbay前缀已经被org.eclipse替换),而且单个的server.jar也已经被分割成几个组成部分(jetty-server.jarjetty-servlet.jarjetty-io.jar等)。模块化的一个附带好处是在不同的包之间带来了更多的强制的关注点分离,由此进而导致了更多的嵌入模块的方法。同时,Jetty 现在是一系列有效的 OSGi 包(具备定义良好的依赖关系),它仍然可以运行在 OSGi 运行时之外。

迁移文档中描述了包中的这些不同;鉴于大量的类名已经改变,Jetty 还提供了一个自动化工具来将配置文件中使用的类名转换成Jetty 7.0 的新类名。未来的升级(如升级到Jetty 8.0)将会小得多,因为未来这些包不会再经历一次重命名和重新打包。

基于旧版本Jetty 6.0 的 cometd-jetty 项目也已经过时,请使用基于 Jetty 7.0 的 cometd-java ,该项目现在已可从 CometD.org 访问。一份演示已经可供下载,它通过支持大数量的AJAX 客户端(它们创建了连接到后端服务器的长活动连接),同时不增加负荷,展示了异步延续的好处。

最后,Jetty 的创造者 Webtide 已于上月被Intalio 收购)也宣布了名为 Jetty-Hightide 的开源产品,它包括了一系列开源组件库:

  • Glassfish 的 JSP
  • 来自 atomikos 的 JTA
  • Maven plugin
  • Ant 集成
  • Spring 配置
  • Setuid

当前可供下载的Hightide 版本是以Jetty 6.0 为基础的,但在不久之后,将会提供一份包含Jetty 7.0 的修订版。

Jetty 可以在双许可证下获得,包括 Apache License 2.0 ,以及来自 www.eclipse.org/jetty Eclipse Public License 1.0 。此外,针对其他平台的 Jetty 包还可以从 Codehaus 获得,如用于 Linux 系统的 RPMs Debs

查看英文原文: Jetty 7.0 released

2009-10-13 01:073375
用户头像

发布了 255 篇内容, 共 54.5 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

从《三体》到“中美科技战”,3分钟理解“网络”D丝为什么要迎娶“算力”白富美

华为云开发者联盟

数据 网络 芯片 算力 三体

Python处理Excel文件的实用姿势

程一初

Python 自动化 办公

巧用SQL拼接语句

Simon

MySQL sql

非IT行业大企程序员讲述MIS系统开发案例

Philips

Java 企业信息化 .net core 计算机程序设计艺术 企业开发

教你用SQL实现统计排名

Simon

MySQL

Python1024办公自动化系列

程一初

Python 自动化 办公

MacOS 环境下 Python 访问 MySQL

李绍俊

宿舍晚上温度高,那是你没听“鬼故事”

华为云开发者联盟

人工智能 AI 华为云 modelarts

Python处理音频文件的实用姿势

程一初

Python 自动化 办公

交易所合约跟单开发方,数字资产合约跟单系统搭建

13530558032

Python处理视频文件的实用姿势

程一初

Python 自动化 办公

定时任务最简单的3种实现方法(超实用)

王磊

Java 定时任务

深圳区块链支付系统开发,USDT支付系统服务商

13530558032

带你全面认识 Linux

简爱W

Python处理图像文件的实用姿势

程一初

Python 自动化 办公

MySQL从入门到精通

书旅

MySQL 索引

Python处理Word文件的实用姿势

程一初

Python 自动化 办公

当地铁站都比你更努力

escray

学习 面试

浅谈备受开发者好评的.NET core敏捷开发工具,讲讲LEARUN工作流引擎

Learun

工作流 开发工具 计算机程序设计艺术 表单

如何与面试官更好的沟通

escray

学习 面试

Python处理PDF的实用姿势

程一初

Python 自动化 办公

Python处理PPT文件的实用姿势

程一初

Python 自动化 办公

MySQL如何快速插入数据

Simon

MySQL 数据库

影响音视频延迟的关键因素(三): 传输、渲染

ZEGO即构

buffer API RTC sdk

Python处理邮件和机器人的实用姿势

程一初

Python 自动化 办公

区块链交易所系统开发内容,数字货币交易所搭建

13530558032

LeetCode1160---拼写单词---Easy

书旅

LeetCode

数据库设计

Jayli

数据库

业务架构是什么?

周金根

BIZBOK 业务架构 IT帮 周金根

Axure导出为PDF

波菠菜

Truncate用法详解

Simon

MySQL

开源Servlet容器Jetty 7.0发布_Java_Alex Blewitt_InfoQ精选文章