如何使用共享的 Tomcat?

Posted

技术标签:

【中文标题】如何使用共享的 Tomcat?【英文标题】:How to work with a shared Tomcat? 【发布时间】:2011-08-20 21:11:31 【问题描述】:

抱歉,我尝试搜索此主题,但没有找到与我的问题相关的内容。 最近,我为它购买了一个域名和虚拟主机。我购买它是为了将它用于我的 Java 项目。 我有 Tomcat 作为主机上的服务器。 我的问题是:我如何使用托管的 Tomcat,在我看来,它与 localhost(您可以无限制访问)完全不同?

例如,如果我创建一个如下所示的 Spring 项目:

项目名称

源代码 战争

index.jsp WEB-INF

web.xml

index.jsp 输出一个简单的这是一个测试 web.xml

&lt;welcome-file-list&gt;    &lt;welcome-file&gt;      index.jsp    &lt;/welcome-file&gt; </welcome-file-list>

我创建了一个将构建项目的 Ant build.xml,但是当我从 http://domain.com/project-name 访问时它不起作用,我只能从 http://domain.com/project-name/war 访问该文件

如果我在 localhost 上完成此操作,我会将其部署在 tomcat-path/webapps 中,但这如何在线工作?

【问题讨论】:

你为部署战争做了什么?只需将其复制到 webapps 目录?还是使用了tomcat管理器(如果已安装)? 请求是从 Apache 转发的吗?如果你只是在运行 Tomcat,它默认在 8080 端口上运行,你的浏览器会假设你在请求 80 端口。试试 http://domain.com:8080/project-name @Dirk 好吧,起初我只是尝试复制它,但没有成功。 (关于 tomcat 管理器,我需要完全访问它?也许我可以说服我的托管管理员安装它——我能够更轻松地部署我的应用程序吗?)@nicholas.hauschild 我假设 Tomcat 已配置为可以运行端口 80,因为在 8080 上根本不起作用 如果您可以访问 tomcat(因为您可以在那里复制它),您可能可以自己安装它。不完全确定。您可以通过尝试它通常所在的上下文/管理器来检查它是否已经安装。此外,考虑一下 nicholas.hauschild 上面所说的内容。您的提供商是否提供了任何说明在您的域中部署 web 应用程序的最佳方式是什么? @Dirk - 我的错,因为起初我不明白你问我什么关于我可以复制到 webapps 目录的事实。好吧,我无权访问 /webapps,我只能将我的 jsp 文件复制到 public_html 中,它们可以工作,但是 .war 不能工作。有关配置 Tomcat 部署应用程序方式的任何教程?也许我可以告诉我的托管管理员配置什么来帮助我。 【参考方案1】:

解决方案是安装 Tomcat Manager Webapp,以便在使用 Tomcat 作为服务器的共享主机上部署应用程序。

编辑: 如果主机没有为您提供 Tomcat 管理器(在我的情况下),您仍然可以通过要求主机管理员配置您的 jk_mod 文件来部署您的战争文件来完成。

添加这些行

jkMount /*.war ajp3 jkMount /* ajp3 ##我仍然不确定这是否有效,因为它使tomcat监听整个public_html

但请注意,如果您的 Tomcat 版本是由 cPanel 的 EasyApache 提供给您的,那么您也必须处理那里的一些问题 - 最新安装的 Tomcat 将是 5.5.33(有点旧的,对吗?),但您可以再次尝试调整旧版本并安装,比如说 6.xx 关于此升级的教程:

http://www.bestdesigns.co.in/blog/install-tomcat-6

对我理解解决这个问题所涉及的概念有很大帮助的事情:

http://www.scribd.com/doc/6085698/Tomcat -- 关于Tomcat和cPanel的培训课程

还要补充一点:在你的机器上安装本地版本的 Tomcat,首先将它部署在 localhost 上。如果它在那里工作,它应该也可以在线工作。

那些使用 Spring Roo,在 Tomcat 5.5.33 上工作的人,如果你已经知道,你不能部署你的项目,因为太旧的 Tomcat,所以你必须立即升级你的Tomcat。

我希望这将帮助所有像我一样遇到困难的人。

【讨论】:

以上是关于如何使用共享的 Tomcat?的主要内容,如果未能解决你的问题,请参考以下文章

在tomcat中部署共享jar的最佳方法

分布式集群环境下,如何实现session共享三(环境搭建)

如何让Tomcat使用APR连接器

Tomcat基于MSM+Memcached实现Session共享

Nginx+tomcat实现session共享

如何在两个或多个 Servlet 之间共享变量或对象?