嵌入式与独立 Tomcat ( HTTP ) 服务器
Posted
技术标签:
【中文标题】嵌入式与独立 Tomcat ( HTTP ) 服务器【英文标题】:Embedded vs Stand alone Tomcat ( HTTP ) server 【发布时间】:2014-01-11 05:57:03 【问题描述】:我正在开发一个新项目,该项目将是一个具有前端 UI 和后端 Web 服务的 Web 应用程序。我开始研究要使用哪些服务器,例如 Tomcat / Jetty 等等。我还注意到这些 HTTP 服务器有一个嵌入式版本。我不明白何时将嵌入式版本用于独立版本。我尝试使用谷歌搜索,但找不到令人信服的答案,如果有人向我解释嵌入式服务器的用例,我将不胜感激。提前致谢。
【问题讨论】:
【参考方案1】:我已将 embedded-jetty
用于 Web 应用程序。我使用的原因是我不想为一个应用程序设置单独的 Web 服务器。所以我做了一个简单的java程序,在里面嵌入了jetty,并通过java代码配置了所有的服务器属性。现在我可以在任何没有安装 Web 服务器的机器上运行这个程序,它将充当在服务器中运行的 Web 应用程序。我可以关联任何端口并在其中编写多对多上下文/servlet 映射。
【讨论】:
嗯,如果我要在开发阶段更改主机,嵌入式服务器会很有帮助。那么在部署的便利性和测试更改方面没有任何区别吗? 嵌入式码头提供热交换,这是我检查过的,但关于其他服务器属性(可能我什至不知道)我还没有检查过。【参考方案2】:当您将应用程序视为操作系统进程并且它将以java -jar youapp.jar
之类的内容启动时,嵌入式服务器非常有用。在这种情况下,无需预先使用给定的应用服务器(例如 Tomcat)设置盒子。此类应用程序可由最终用户运行,无需额外安装和配置应用服务器。
像 Jenkins 这样的应用程序从这种封装中受益匪浅。另一种情况是在 Heroku 等云服务上部署时。您将应用程序服务器包装在您的 jar 中,就无需将服务器安装在此类云盒上。
这里本质上是在给定的嵌入式服务器上运行单个 Web 应用程序。但是,如果您希望在两个上下文 $root/app1
$root/app2
上安装两个 Web 应用程序,那么嵌入式应用程序服务器对您来说不是一个好的选择。
【讨论】:
我明白,这是一篇旧文章,但这个链接可能会帮助其他人,因为我遇到了同样的问题 Application Servers - Sort of Dead以上是关于嵌入式与独立 Tomcat ( HTTP ) 服务器的主要内容,如果未能解决你的问题,请参考以下文章
带有嵌入式或独立 tomcat 的 Java docker 容器?
spring boot 嵌入式 tomcat 不以 jcifs smb 库开头