选择您的Java EE 6应用服务器

我被问到的第一个问题是:“我们应该使用哪个Java EE应用服务器?”。 随着Java EE 6的日益普及,新的兼容应用程序服务器获得了认证。

当前的官方兼容性和认证矩阵列出了针对完全配置文件,Web配置文件或两者认证的12种不同产品。 如果您要在绿色领域开始新项目,您将做出哪个决定? 这是我试图缩小解决方案空间的方法。

玩家们


从花束中挑选什么样的花束? 非常丰富多彩。 除了众所周知的名称(如IBM,SAP,RedHat,Apache和Oracle)外,列表中的知名度也较低。 Caucho的Resin,Apache的TomEE,OW2的JOnAS和SAP的NetWeaver Cloud仅通过Web Profile认证。 所有其他人都获得了Full Profile认证。 下表包含我们参与者的完整列表,其中包含一些更多详细信息:

应用服务器 供应商 执照 轮廓 供应商支持 Java版本
GlassFish服务器3.01 甲骨文 OTN /商业 FP 热点6/7
GlassFish Server开源版3.x 甲骨文 GPL + CDDL FP 没有 热点6/7
WebSphere Application Server 8.x版 IBM公司 商业版(prod + dev) FP IBM JVM 7
WebSphere Application Server社区版3.0 IBM公司 IBM非保证程序国际许可协议 FP IBM JVM 7
耶稣7 TMAX 商业广告 FP 热点6
由Windows Azure支持的Interstage Application Server 富士通 商业广告 FP 热点6
Interstage应用程序服务器v10.1 富士通 商业广告 FP 热点6
Geronimo 3.0-beta-1 阿帕奇 阿帕奇2.0 FP 没有 热点6
WebLogic Server 12.1.1 甲骨文 商业/开发免费 FP 热点6/7
uCosminexus应用服务器v9.0 日立 商业广告 FP
JBoss应用服务器7.x 红帽 LGPL FP 没有 热点6
JBoss企业应用平台6 红帽 LGPL /商业 FP 热点6
树脂4.0.17 考乔 GPL“ Resin开源”版本“ Resin Professional”商业版 可湿性粉剂 热点6
TomEE 1.0 阿帕奇 阿帕奇2.0 可湿性粉剂 没有 热点6/7
乔纳斯5.3.0-M8-快照 OW2 LGPL 可湿性粉剂 没有 热点6/7
NetWeaver云 树液 商业广告 可湿性粉剂 SAP Java服务器VM 1.6

看你的要求

好消息首先。 兼容性列表中列出的所有应用程序服务器都通过了Java EE 6 TCK(技术兼容性套件),这基本上意味着它们提供与Java EE 6相关的相同功能。即使由于许多原因,它们都具有一定的模糊性原因。 一种是,没有TCK覆盖100%的指定功能。 但我敢肯定,您可以提出其他原因。 好的信息基本上是什么,让您想知道哪些是可以比较的正确需求集? 显然,它不是一套完整的技术指标,而是不同方面的组合。

以下是一组简单的指标示例:

–源代码许可(OSS或商业)

–许可费用(开发和生产免费)

–支持(可提供开发和/或生产支持)

–认证Java版本(6.0、7.0 / HotSpot /专有JVM)

– Java EE 6配置文件(完整或Web配置文件)

如果您要进行全面的产品选择,那么这远远不够。 您最有可能会查看来自不同类别的指标(例如,职能,非职能,公司,财务方面),但是到目前为止,这已经足够了。

选择过程

让我们来做:在这个简单的示例中,继续选择过程。

首先有一点免责声明:这是一个非常简化的选择过程,实际上并没有挖掘所有脏的小细节。 对于您自己的选择过程,仅将其视为粗略的方法论思想! 因此,如果有人对我所做的事情不满意,我很乐意在评论中阅读它!

我们正在寻找一种支持Java EE 6 Full Profile的OSS服务器。 这意味着我们将杀死所有商用服务器,而Web Profile仅是其中的一个:

应用服务器 供应商 执照 轮廓 供应商支持 Java版本
GlassFish服务器3.01 甲骨文 OTN /商业 FP 热点6/7
GlassFish Server开源版3.x 甲骨文 GPL + CDDL FP 没有 热点6/7
WebSphere Application Server社区版3.0 IBM公司 IBM非保证程序国际许可协议 FP IBM JVM 7
Geronimo 3.0-beta-1 阿帕奇 阿帕奇2.0 FP 没有 热点6
JBoss应用服务器7.x 红帽 LGPL FP 没有 热点6
JBoss企业应用平台6 红帽 LGPL /商业 FP 热点6

还剩五个。 从许可证的角度来看,这有两个问题。 JBoss EAP 6和Oracle GlassFish Server都具有商业许可证(据我了解),但是它们仍然依赖OSS服务器产品,并且许可版本仅在您需要支持时才有意义。 在下一步中,我将启动不提供供应商支持的所有服务器:

应用服务器 供应商 执照 轮廓 供应商支持 Java版本
GlassFish服务器3.01 甲骨文 OTN /商业 FP 热点6/7
WebSphere Application Server社区版3.0 IBM公司 IBM非保证程序国际许可协议 FP IBM JVM 7
JBoss企业应用平台6 红帽 LGPL /商业 FP 热点6

这使我们下降到三个。 仍然不是一个单一的结果。 现在,让我们有意删除IBM,因为它们没有在HotSpot上认证,而是使用自己的IBM JVM J9。

应用服务器 供应商 执照 轮廓 供应商支持 Java版本
GlassFish服务器3.01 甲骨文 OTN /商业 FP 热点6/7
JBoss企业应用平台6 红帽 LGPL /商业 FP 热点6

根据我的一点评估,今天只有JBoss AS 7和GlassFish才是真正的选择。

建议

有人会叫我害怕在这里选拔一个获胜者。 如果您了解我,就会知道这根本不是事实。 给定初始指标,这恰好是结果,显然所选指标不足以任命明确的赢家。

如果您需要最终建议,则必须根据需要调整指标。 我建议进一步研究一下:

–市场覆盖率(例如下载/客户/等)

–成熟度(例如自EE 6最终版本以来的可用年限)

–开发性能(例如,启动时间/ IDE集成)

备注:

我为此感到抱歉,我将Oracle和RedHat的商业产品与相关的OSS服务器混合了一些。 鉴于这一事实,我希望看到OSS服务器会导致供应商支持要求的淘汰标准。 考虑到事实,我真的不建议对任何人使用AS7.1.1.Final(请参阅henk所做的原因的很好的总结 )我个人认为,为两者推荐商业方面是很公平的服务器。

参考: 在Java 企业软件开发博客上,从我们的JCG合作伙伴 Markus Eisele 选择Java EE 6应用服务器 。

翻译自: https://www.javacodegeeks.com/2013/01/selecting-your-java-ee-6-application-server.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/370586.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

串的基本计算

#include<stdio.h> #include<stdlib.h> //typedef int Status; #define Max 20 #define OK 1 #define ERROR 0 #define OVERLOE -2 typedef struct//堆分配表示串 { char *ch; int length; }HString; // int CreatHString(HString &H)//构造字符串 { H.length …

HTML表格属性及简单实例

这里主要总结记录下表格的一些属性和简单的样式&#xff0c;方便以后不时之需。 1、<table> 用来定义HTML的表格&#xff0c;具有本地属性 border 表示边框&#xff0c;border属性的值必须为1或空字符串("")。该属性不会控制边框的样式&#xff0c;而是由CSS来…

怎么查看MySQL 源码编译了什么_Mysql 源码编译教程贴

题外话:这是一篇教程贴,不仅学的是mysql的编译,还是一些编译的知识.我也是一个菜鸟,写一些感悟和心得,有什么问题可以批评指正,谢谢!如果只是为了安装请移到我的另一篇安装贴: Mysql安装贴环境:OS: CentOS 6.6x64 minimysql: mysql-5.6.251. mysql 下载:http://dev.mysql.com/d…

linux mysql启动_MySQL 安装(二)

MySQL 安装所有平台的Mysql下载地址为&#xff1a;MySQL 下载 . 挑选你需要的 MySQL Community Server 版本及对应的平台。Linux/UNIX上安装MySQLLinux平台上推荐使用RPM包来安装MySQL&#xff0c;MySQL AB提供了以下RPM包的下载地址&#xff1a;MySQL - MySQL服务器。你需要该…

0524驼峰命名法,模态对话框

模态对话框 window.showModalDialog("url"&#xff0c;"向目标对话框传的值"&#xff0c;"窗口特征参数") 打开模态对话框 模态对话框必须关掉才能对后端操作。 模块对话框和窗口的区别是永远置顶。 特征参数&#xff1a;用分号隔开&#xff0c;…

谁在偷你的记忆? 应用服务器版

您创建了一个了不起的应用程序。 您将其投入生产。 您会发现您没有足够的可用内存。 即使您的所有测量结果&#xff08;可能是借助我们的小型公用事业公司进行的测量 &#xff09;都表明您应该还不错。 我们计划发布一系列博客文章&#xff0c;研究堆消失的位置&#xff0c;并…

遗忘的html标签

1 <span>x</span><sup>2</sup><span> y10</span> 2 <br> 3 <span>H</span><sub>2</sub><span>O</span> <sup> 标签可定义上标文本。 包含在 <sup> 标签和其结束标签 …

Android四大组件之BroadcastReceiver

什么是BroadcastReceiver? BroadcastReceiver(广播接收器)&#xff0c;顾名思义&#xff0c;是用来接收广播的。Android内部实现了一套广播通信机制&#xff0c;即在某个应用或某个组件注册广播接收器&#xff0c;接收特定类型的广播。当别的应用或组件发送该类型的广播时&…

mysql数据库索引页号为什么从3开始_MySQL数据库快问快答

原标题&#xff1a;MySQL数据库快问快答前言今天楼主给大家列一下关于数据库几个常见问题的要点&#xff0c;如果大家对其中的问题感兴趣&#xff0c;可以自行扩展研究。1. UNION ALL 与 UNION 的区别UNION和UNION ALL关键字都是将两个结果集合并为一个。UNION在进行表链接后会…

通过简单的Spring方面摆脱null参数

什么是世界上最令人讨厌的&#xff0c;同时也是最受欢迎的例外&#xff1f; 我敢打赌这是NullPointerException。 NullPointerException可以表示任何东西&#xff0c;从简单的“ ups&#xff0c;我认为不能为空”到数小时和数天的第三方库调试&#xff08;我敢于尝试使用Doze…

java arraylist排序_最全Java集合笔记

集合概述什么是集合集合框架&#xff1a;用于存储数据的容器。集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。任何集合框架都包含三大块内容&#xff1a;对外的接口、接口的实现和对集合运算的算法。接口&#xff1a;表示集合的抽象数据类型。接口允许我们操作…

【3】JVM-OutOfMemory异常重现

JVM中常见的OOM&#xff0c;那么如何通过自己编写代码产生这些OOM异常呢&#xff1f;通过写代码重现异常&#xff0c;是为了避免在工作中写出有OOM BUG的代码。之前虽然看过相关文章&#xff0c;但是没自己写过这些代码&#xff0c;这次在编写的实际过程中&#xff0c;由于和书…

CachedIntrospectionResults 初始化

转载于:https://www.cnblogs.com/xiluhua/p/7862985.html

为什么有些内联(行内)元素可以设置宽高?

为什么有些内联&#xff08;行内&#xff09;元素如img、input可以设置宽高&#xff1f; 在说明之前我们先来了解一些定义。 块级元素和内联元素&#xff1a; ①块级元素总是独占一行&#xff0c;表现为另起一行开始&#xff0c;而且其后的元素也必须另起一行显示。 宽度(w…

mongo数据库和mysql数据库的区别_Mongodb与mysql数据库的区别

MySQLMongoDB说明mysqldmongod服务器守护进程mysqlmongo客户端工具mysqldumpmongodump逻辑备份工具mysqlmongorestore逻辑恢复工具db.repairDatabase()修复数据库mysqldumpmongoexport数据导出工具sourcemongoimport数据导入工具grant * privileges on *.* to …Db.addUser()Db…

在Eclipse中高效运行HTTP / REST集成测试

最近&#xff0c;我有机会使用由我亲爱的Holger Staudacher编写的OSGi-JAX-RS-Connector库。 通过连接器&#xff0c;您可以通过将Path注释的类型注册为OSGi服务来轻松发布资源-实际上&#xff0c;它工作得很好。 对于我来说&#xff0c;使用普通的JUnit测试编写驱动的服务类测…

Eclipse安装TestNG插件

Eclipse安装TestNG插件 TestNG是什么? TestNG按照其文档的定义是&#xff1a; TestNG是一个测试框架&#xff0c;其灵感来自JUnit和NUnit的&#xff0c;但引入了一些新的功能&#xff0c;使其功能更强大&#xff0c;使用更方便。 TestNG是一个开源自动化测试框架;TestNG表示下…

basicdatasourcefactory mysql_Java基础-DBCP连接池(BasicDataSource类)详解

Java基础-DBCP连接池(BasicDataSource类)详解作者&#xff1a;尹正杰版权声明&#xff1a;原创作品&#xff0c;谢绝转载&#xff01;否则将追究法律责任。实际开发中“获得连接”或“释放资源”是非常消耗系统资源的两个过程&#xff0c;为了解决此类性能问题&#xff0c;通常…

生物神经网络衍生出的算法

一个生物神经网络的基本结构&#xff1a; 生物神经网络由大量神经元组成&#xff0c;这些神经元之间通过突触相互连接。神经元可以接收来自其他神经元的信号&#xff0c;并根据信号的强度和类型来调整自己的输出信号。这种神经元之间的相互连接和信号传递形成了生物神经网络的基…

echart实例数据 本地加载_JVM 类加载概述

来源&#xff1a;SegmentFault 思否社区作者&#xff1a;又坏又迷人JVM简介JVM是Java Virtual Machine(Java虚拟机)的缩写&#xff0c;JVM是一种用于计算设备的规范&#xff0c;它是一个虚构出来的计算机&#xff0c;是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Ja…