Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Apache Tomcat是否意味着每个托管应用程序安装一次?_Java_Tomcat - Fatal编程技术网

Java Apache Tomcat是否意味着每个托管应用程序安装一次?

Java Apache Tomcat是否意味着每个托管应用程序安装一次?,java,tomcat,Java,Tomcat,我试图理解ApacheTomcat遵循的模型,而文档对我来说显然没有意义 据我所知,Tomcat是一个托管各种服务的服务器,所以它非常通用。我已经得到了这个应用程序,我正试图了解如何托管它,它的主要部署方法似乎是作为一个Tomcat托管的web服务——这个应用程序被称为Camunda(它在github上)。在浏览了Camunda的文档之后,我的Tomcat目录中完全充满了与Camunda相关的JAR和配置文件等。文档说只需将所有内容直接放到Tomcat lib文件夹、conf文件夹中,等等 我对

我试图理解ApacheTomcat遵循的模型,而文档对我来说显然没有意义

据我所知,Tomcat是一个托管各种服务的服务器,所以它非常通用。我已经得到了这个应用程序,我正试图了解如何托管它,它的主要部署方法似乎是作为一个Tomcat托管的web服务——这个应用程序被称为Camunda(它在github上)。在浏览了Camunda的文档之后,我的Tomcat目录中完全充满了与Camunda相关的JAR和配置文件等。文档说只需将所有内容直接放到Tomcat lib文件夹、conf文件夹中,等等

我对其他“平台”/“服务”风格主机应用程序的大部分经验是,应用程序本身(在本例中为Tomcat)在其自己的目录中保持不变。通过配置文件等,它知道如何承载它需要承载的任何内容

在Tomcat的例子中,似乎习惯于用一堆libs来“污染”Tomcat目录中的托管内容

这就是为什么我写了一个标题“Tomcat是否意味着每个应用程序安装一次”,因为无论出于何种目的,一旦你在Tomcat中托管了某个东西,目录就会变得如此耦合,以至于Tomcat目录就是这样的东西

这正常吗?只是想从文档中的其他术语中得到一些澄清,因为文档对我来说似乎不是很清楚


这里有一个链接,指向我正在遵循并提及的安装过程:

我已经有一段时间没有使用Tomcat了,但它不仅不是每个应用程序安装一次,甚至不是每个虚拟主机安装一次

Tomcat(除其他外)是一个servlet容器。Servlet的目录布局等在JavaServlet规范v2.2中进行了标准化。您可以下载最新的servlet规范

文档说只需将所有内容放到Tomcat lib文件夹、conf文件夹等中

希望他们谈论的是
.war
文件或类似文件中的文件,或者共享位置中的共享库。您可以将共享库放在一个可以跨应用程序(甚至虚拟主机)重用的位置,这在磁盘空间更昂贵的时候可能很有用,但现在我假设大多数人将应用程序的lib放在应用程序的
.war
文件的
/WEB-INF/lib
目录中

讨论
.war
文件的“目录”布局(基本上是一个具有特定结构的
.jar

诚然,通常
.war
文件会扩展到Tomcat安装目录的子目录中,但正如注释中链接到的那样,您可以修改
server.xml
文件,使其在其他地方查找

您可以安装一个名为的web应用程序,该程序通过
.war
文件帮助安装、激活、停用和管理web应用程序。(还有一种用于管理虚拟主机的方法。)


综上所述,如果您愿意,您当然可以为每个Tomcat安装一个应用程序。您需要在它前面安装一个反向代理(Apache、Nginx等),以便相同的端口(例如80)可用于各种应用程序的外部URL,并且您需要为每个Tomcat安装自己的内部端口,以便反向代理进行对话。

一个链接会很有帮助,因为有多个类似名称的项目。通常,多个应用程序(这里称为“servlet”)被部署到单个Tomcat实例中,每个应用程序都作为.war文件(基本上是一种特殊的.jar文件)被Tomcat提取(解压)是正确的。您是否遵循了camunda/camunda bpm workbench“在应用服务器内部安装工作台”的指南?这自2015年以来就没有更新过,但如果它真的是你需要的。。他们还有一个独立的应用程序:关于“污染”Tomcat目录,这个答案可能很有帮助:将任何JAR文件放入Tomcat的
lib
目录的唯一原因是在应用程序之间共享它或克服一些安全问题。如果你的应用程序供应商建议你把所有的JAR文件都安装在那里,他们不知道自己在说什么。通常情况下,除了他们的.war文件外,没有理由安装任何东西。@CodeShane我编辑了我的原始帖子,并添加了我下面的安装指南的链接:谢谢,@Ryan-我们有一个完整的问题后,我将发布一个完整的答案,但很高兴看到你已经找到了答案。:)