首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >向客户端交付和部署JEE应用程序的最佳方法

向客户端交付和部署JEE应用程序的最佳方法
EN

Software Engineering用户
提问于 2016-06-04 15:47:03
回答 1查看 1.6K关注 0票数 3

我曾为几家公司工作过,甚至自己开发过项目--这些项目都是基于的。有时涉及Spring框架,有时是纯JEE。然而,构建基于Java的应用程序对我来说有一个主要缺陷--太多的异构环境。

  1. 不同的应用服务器。每一个都有自己的一套不同的问题和错误。
  2. 不同的客户端有不同的JDK。对于管理员来说,交换JDK应该很容易。在实践中,这是一个痛苦的屁股。

这样,我们有时被迫将我们的项目建立在JDK 1.6之上,并部署到已经过时的应用服务器上。即使我们的客户端从零开始为我们建立环境,安装最新的JDK和一个像WildFly一样像样的环境,它也可能在几个月(JDK)或几年(App.Server)内被废弃。

而且,由于一些客户端只有Tomcat或其他servlet容器,因此需要使用Spring框架,因此没有其他选择,比如新的Java Micro库。我并不认为这是一个问题,但完全改变环境是潜在的危险--尤其是在银行业。每件事都得再做一次测试,而且要花钱。

因此,我正在寻找一种方法来打包Java应用程序,并将其表示为客户端管理员的黑匣子。可能有最小数量的(外部)配置。

WildFly群(链接)看起来很有希望。WildFly只提供servlet发行版,因此,如果需要,它适合于Spring项目。事实上,它可能是目前最好的服务器。生成的fat jar可以与任何JDK一起运行,并且可以通过一些本机shell脚本/可执行文件运行。这看起来很有希望。像数据库这样的外部依赖通常不是一个问题--我们通常对最新的数据库服务器没有很强的需求。

我不确定这是否支持一个WildFly群中的多场战争。

Docker整个应用服务器、java应用程序(wars、ears)被简单地放入到一个Docker映像中。这需要安装对接器,但同样需要安装一次,无需重新测试整个应用程序生态系统就可以轻松地进行更新。文档化有一个很大的好处--如果我想包括一个类似数据库(Mongo)的东西,我可以。

摘要

总体思路是控制客户所拥有的环境。不要现在就设置它,并在几年后努力更新所有的东西。在每次应用程序升级时,如果需要,我只想简单地更新JDK。因此,我想更新我的应用服务器/servlet容器。能够向包中添加一些其他程序是一个加号,但不是必要的。

但是,我对这种应用程序分发方式没有任何经验。

  • 有人有这样的应用程序部署经验吗?
  • 对于Java应用程序,还有其他的/更好的方法吗?
  • 你用什么?
EN

回答 1

Software Engineering用户

回答已采纳

发布于 2016-06-11 12:57:10

S群、Spring、Dropwizard --它们只是微型容器,而不是将应用程序打包为war,并在容器中运行,而是在应用程序中打包as工具。

这里有一个很好的比较:https://github.com/simundi/micro-containers

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/320284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档