JavaEE真的可移植吗?

2024-03-15

我正在实施面试时分配给我的 JavaEE 作业。

我以前对 EJB 有一些经验,但与 JMS 和 MDB 没有任何关系。以下是我通过大量示例发现的内容:

  • 应用程序服务器将其主题和队列绑定到不同的 JNDI 名称 - 例如topic/queue, jms
  • the activationConfig该属性在 JBoss 上是必需的,而在 Sun 教程中则不是。
  • 启动我的应用程序后,jboss警告我我的主题未绑定(实际上不是 - 我还没有绑定它,但我希望它自动绑定 - 事实上,在 JBoss 4.0 自动绑定的示例中似乎发生)。建议的解决方案是将其映射到一些 jboss 文件中,甚至使用 jboss 特定的注释。

这可能只是 JBoss,但由于它经过认证可以按照规范实施,因此规范似乎没有指定这些内容。所有所谓的可移植性都消失了。

所以我想知道 - 为什么有人声称 JavaEE 是可移植的,你可以把它部署在另一个应用程序服务器上,它会神奇地运行,如果这些极其基本的东西看起来根本不是可移植的。

附:抱歉,我的咆哮,但我想我可能做错了/做错了什么,所以请发表你的意见。


Java EE,就像(几乎?)任何标准一样,是实现者努力宣传遵守但又极力不想遵守的东西。

考虑这个问题:红帽如何赚钱?是通过赠送东西还是通过出售它们?如果您编写的代码可以轻松转移到另一个 Java EE 应用程序服务器,这将妨碍他们从您那里赚钱。解决这个问题的方法是古老的“拥抱和扩展”技术,该技术被归功于微软,但实际上自第一个标准发布以来一直是商业软件供应商选择的工具。

如果你坚持strictly到代码中的 Java EE API,然后 JBoss(或 Geronimo(或 JonAS(或 ...)))将运行它以及任何其他兼容的应用程序服务器,只需在特定于服务器的部署描述符中进行更改。这是拥抱阶段。

每台服务器——尤其是商业服务器(如 JBoss)! -- 还倾向于向 API 添加额外的内容以“让事情变得更容易”。 (公平地说,这些通常确实会让事情变得更容易。)开发人员——尤其是那些不太熟悉标准 API 的开发人员——经常陷入依赖这些额外 API 而不以任何方式包装它们的陷阱,从而导致这些扩展被淹没如果您希望更改平台,则它们的代码很难删除。这是扩展阶段。

从软件历史上的任何时间点命名一个标准,你都会发现人们拥抱和扩展(以至于当人们谈论“致命拥抱”时,我必须强行将我的想法从供应商锁定问题转移到正确的术语上) 。您还会发现最终用户(开发人员或其他用户)会爱上它。在这方面,Java EE 与任何其他技术没有什么不同。

然后你考虑到大多数规范的措辞有多糟糕,然后......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaEE真的可移植吗? 的相关文章

  • 在Maven中生成Version.java文件

    我有一个使用 Ant 脚本构建的 Java 项目 我正在尝试将项目转换为 Maven 其中一项任务生成一个名为 Version java 的 Java 源文件 其中包含编译时间戳的静态字符串表示形式 如下所示 package com foo
  • Java将字符串解析为double

    如何解析字符串中的这个 Double 00034800 变成 Double 值 最后两位数字实际上是小数点 所以我正在寻找的结果是348 00 是否有这样的格式可以与十进制格式一起使用 Well String s 00034800 doub
  • java程序有多少种结束方式?

    我知道使用 System exit 0 可以结束一个java程序 例如 如果我有一个JFrame窗口 它会关闭并结束程序 但我想知道还有多少其他方法 可以关闭它并结束程序 包括发生错误时 程序会被关闭 JFrame也会被关闭吗 添加到其他答
  • 使用 proguard 混淆文件名

    我正在使用 proguard 和 Android Studio 混淆我的 apk 当我反编译我的apk时 我可以看到很多文件 例如aaa java aab java ETC 但我项目中的所有文件都有原始名称 有没有办法混淆我的项目的文件名
  • 非易失性领域的出版与阅读

    public class Factory private Singleton instance public Singleton getInstance Singleton res instance if res null synchron
  • Java LostFocus 和 InputVerifier,按反向制表符顺序移动

    我有一个 GUI 应用程序 它使用 InputVerifier 在产生焦点之前检查文本字段的内容 这都是很正常的 然而 昨天发现了一个问题 这似乎是一个错误 但我在任何地方都找不到任何提及它的地方 在我将其报告为错误之前 我想我应该问 我在
  • 通过Zuul上传大文件

    我在通过 zuul 上传大文件时遇到问题 我正在使用 apache commons 文件上传 https commons apache org proper commons fileupload https commons apache o
  • 什么是内部类的合成反向引用

    我正在寻找应用程序中的内存泄漏 我正在使用的探查器告诉我寻找这些类型的引用 但我不知道我在寻找什么 有人可以解释一下吗 Thanks Elliott 您可以对 OUTER 类进行合成反向引用 但不能对内部类实例进行合成 e g class
  • 自定义列表字段点击事件

    我正在编写一个应用程序 其中我创建了用于显示列表视图的自定义列表字段 我的 CustomListField 包含连续的一个图像和文本 我正在通过单击列表字段行获取字段更改侦听器 但我也想将字段更改侦听器放在图像上 谁能告诉我我该怎么做 这是
  • 未装饰窗户的 Windows Snap 功能?

    有谁知道如何允许未装饰的窗户使用此功能 唯一的选择就是重新实施它 有任何想法吗 谢谢 可停靠可能是唯一的JToolBar http docs oracle com javase tutorial uiswing components too
  • 无需递归即可对可观察结果进行分页 - RxJava

    我有一个非常标准的 API 分页问题 您可以通过一些简单的递归来处理 这是一个捏造的例子 public Observable
  • 如何自定义舍入形式

    我的问题可能看起来很简单 但仍然无法得到有效的东西 我需要自定义 Math round 舍入格式或其他格式以使其工作如下 如果数字是 1 6 他应该四舍五入到 1 如果大于或等于 1 7 他应该四舍五入到 2 0 对于所有其他带有 6 的小
  • Android - 存储对ApplicationContext的引用

    我有一个静态 Preferences 类 其中包含一些应用程序首选项和类似的内容 可以在那里存储对 ApplicationContext 的引用吗 我需要该引用 以便我可以在不继承 Activity 的类中获取缓存文件夹和类似内容 你使用的
  • Tomcat 6 未从 WEB-INF/lib 加载 jar

    我正在尝试找出我的 tomcat 环境中的配置问题 我们的生产服务器正在运行 tomcat 安装并从共享 NFS 挂载读取战争 然而 当我尝试使用独立的盒子 及其配置 进行同样的战争时 我收到下面发布的错误 有趣的是 如果我将 WEB IN
  • Lombok 不适用于 Eclipse Neon

    我下载了lombok jar lombok 1 16 14 jar 并将其放入我的下载中 然后我点击这个 jar 执行正确地识别了我的 MacOS 上的 Eclipse 实例 然后我选择了我想要的实例 Lombok也在pom xml中指定
  • java实现excel价格、收益率函数[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Android计算两个日期之间的天数

    我编写了以下代码来查找两个日期之间的天数 startDateValue new Date startDate endDateValue new Date endDate long diff endDateValue getTime star
  • 即使禁用安全性,OAuth 令牌 API 也无法在 Elastic Search 中工作

    我是 Elastic search 新手 使用 Elastic search 版本 7 7 1 我想通过以下方式生成 OAuth 令牌弹性搜索文档 https www elastic co guide en elasticsearch re
  • 我所有的 java 应用程序现在都会抛出 java.awt.headlessException

    所以几天前我有几个工作Java应用程序使用Swing图书馆 JFrame尤其 他们都工作得很好 现在他们都抛出了这个异常 java awt headlessexception 我不知道是什么改变了也许我的Java版本不小心更新了 谢谢你尽你
  • 确定 JavaFX 中是否消耗了事件

    我正在尝试使用 JavaFX 中的事件处理来做一些非滑雪道的事情 我需要能够确定手动触发事件后是否已消耗该事件 在以下示例中 正确接收了合成鼠标事件 但调用 Consumer 不会更新该事件 我对此进行了调试 发现 JavaFX 实际上创建

随机推荐

  • JSF 视图 - 在操作上返回 null 不会更新视图

    我读过与我有同样问题的帖子JSF ViewScope 在不更新视图的操作上返回 null https stackoverflow com questions 13914594 jsf viewscope returning null on
  • UWP:PRI277:0xdef00532 - 资源“”的值冲突

    作为 Visual Studio 2017 UWP 生成过程的一部分 会运行一个名为 MakePri exe 的应用 它在我的项目中引发错误 但我不知道为什么 命令行调用是 C Program Files x86 Windows 套件 10
  • 打印文件中一行的最后一列

    我有一个不断被写入 更新的文件 我想找到包含特定单词的最后一行 然后打印该行的最后一列 该文件看起来像这样 随着时间的推移 将会添加更多 A1 B1 C1 行 A1 123 456 B1 234 567 C1 345 678 A1 098
  • Java 中的内存 OLAP 引擎 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有内存中 OLAP 切片和切块数据 Java 库 相当于 Microsoft 分析服务 特别想听听
  • 修复了页眉与页内锚点重叠的问题

    如果我在 HTML 页面中有一个非滚动标题 固定在顶部 具有定义的高度 有没有办法使用 URL 锚点 fragment部分 让浏览器滚动到页面中的某个点 但仍然尊重固定元素的高度无需 JavaScript 的帮助 http example
  • 无法在 yum 上下载 caddy 包

    我在 Amazon Linux 上使用 AWS EC2 当我尝试下载 caddy yum install caddy 时 出现以下错误 如屏幕截图所示 编辑 2022 年 11 月 19 日 A H 的回答 https stackoverf
  • 找不到所需的文件index.html - Heroku 推送错误

    我正在使用 Heroku CLI 将 React Node 应用程序推送到 Heroku 构建失败 错误为找不到所需的文件index html 我已经检查了所有文件和一切就位 不知道我错过了什么 我被困在这里一星期了 请帮我 我正在使用 H
  • 如何在搜索之前编辑 jQuery 自动完成的输入?

    我有一个自动完成框 出于本示例的目的 因为它是一个简单的示例 返回一个包含社会安全号码的列表 为了便于阅读 它们中有破折号 我想修改自动完成功能 以便如果我输入 123456789 或 123 45 6789 它将在自动完成功能中找到相同的
  • Eiffel 中的不可变类

    我正在尝试做一个不可变的POINT在埃菲尔铁塔上课 下面的代码定义了一个吗 这 NONE 的可访问性x and y田地就够了吗 我可以给类不变量写一些东西吗x x 或者我还能如何实现不变性 class POINT create make f
  • 如何在SQLAlchemy中获取游标

    我是 Python Flask 的新手 在我的项目中 我们使用以下代码创建数据库对象 app Flask name app config SQLALCHEMY DATABASE URI sqlite tmp test db db SQLAl
  • 找不到 jQuery 选择器时会发生什么?

    如果我通过了一项selector as a parameter到一个函数 selector is an object function selector selector trigger eventHere 显然 event如果select
  • 从套接字读取二进制数据

    我正在尝试连接到服务器 然后向其发送 HTTP 请求 在本例中为 GET 这个想法是请求一个文件 然后从服务器接收它 它应该适用于文本文件和二进制文件 例如 imgs 我对文本文件没有问题 它工作得很好 但我对二进制文件有一些麻烦 首先 我
  • 枚举捕获 ALSA 设备并从中捕获

    我正在编写一个 C 程序 我想枚举系统中的所有捕获设备 实际上 我知道我有三个网络摄像头加上 集成 麦克风 识别它们并同时开始捕获它们 我使用 snd device name hint 枚举所有 PCM 设备 然后使用 snd device
  • Elasticsearch 按日期排序不正确

    在Elasticsearch文档中 有一个字段createdAt定义如下 createdAt type date format YYYY MM DD HH mm ss 当尝试按日期对记录进行排序时 我得到以下顺序 2019 10 01 07
  • 从迭代器返回对象的引用

    我想从向量返回对象的引用 并且该对象位于迭代器对象中 我怎样才能做到这一点 我尝试了以下方法 Customer CustomerDB getCustomerById const string id vector
  • 如何在 Node JS 中从目录中读取文件列表(按修改日期排序)

    需要从特定目录中读取文件列表 其中日期按降序或升序修改Node js 我已经尝试过下面的代码但无法得到解决方案 fs readdir path function err files if err throw err else var res
  • 如何通过php从外部网页获取内容?

    我想获取网页中的 标题 描述和关键字 我知道实现这项工作的 3 种方法 a 使用CURL b 使用 fopen c 使用 get meta data 奇怪的是 上述每一项都不能每次都正常工作 对于相同的网址 有时 我可以获得内容 有时 它会
  • 当焦点被移除时,XNA 运行缓慢

    我只是想知道 在制作游戏时 我注意到当我的游戏具有焦点时 就像它应该的那样 IsRunningSlowly 的 GameTime 值返回 false 但是当我更改应用程序时 它会更改为 true 我什至制作了一个空游戏 即使它失去焦点 Is
  • Android GPS 路由系统

    我正在开发一个 Android 应用程序 它可以定位用户 假设用户在路上 并且该应用程序将为用户创建最短路线 以便能够到达用户选择的目的地 定位用户不是问题 因为这里有一个 API http www vogella com articles
  • JavaEE真的可移植吗?

    我正在实施面试时分配给我的 JavaEE 作业 我以前对 EJB 有一些经验 但与 JMS 和 MDB 没有任何关系 以下是我通过大量示例发现的内容 应用程序服务器将其主题和队列绑定到不同的 JNDI 名称 例如topic queue jm