我在Tomcat指南上读到了这个 这里 还有一些问题。而且我认为我几乎都在做同样的事情。但在某种程度上无法成功。
首先,我必须说我的应用程序部署在我无法控制的共享Tomcat服务器上。我放弃了 。战争 文件,它被部署。
我试图打包我的应用程序 ROOT.war 但没有奏效。管理员告诉我把它打包成我想要的名字,他们会照顾它。 我把它打包成了 我-application.war 它已部署但我必须进入 HTTP://我的主机/我的应用 去网站。
联系管理员后,他们告诉我他们已经在我的主机中将一个上下文元素放在Tomcat配置文件中,如:
<Context path="" docBase="path of my-application deployed folder"/>
这应该是设定的 我的应用程序 作为所有请求的默认应用程序 my-host
。但它并没有,每当我进入 HTTP://我的主机 我明白了:
HTTP Status 404 - / The requested resource (/) is not available
但是当我进入时 HTTP://我的主机/我的应用 一切正常。任何关于可能出错的建议都是绝对值得赞赏的。
更新:
我试着按照tomcat文档中描述的步骤进行操作 如何使应用程序默认。描述了3种方式,我尝试了所有三种方式,并且可以在localhost上将我的应用程序成功部署为ROOT。
我还尝试重现我在远程服务器上遇到的问题,以便找到原因并将其报告给管理员。我发现了几个问题。
- 在 server.xml中 管理员发给我的片段 自动部署 和 deployOnStartUp 设置为true,如果在server.xml中显式定义Context元素,则它们应该为false。这将导致双重部署,从而创建一个ROOT文件夹和一个名为.war文件的文件夹。删除.war将删除它的相应文件夹并取消部署应用程序,但ROOT仍然存在,必须手动删除并需要重新启动Tomcat。在重新启动之前,ROOT.war的任何部署都将失败。
- 我认为有一些原因阻止了ROOT.war的部署。一个可能是那个 的ROOT.xml 存在于 的conf / {引擎名称} / {主机名} 或者主机的appBase中存在ROOT文件夹,或者如上所述,以前部署的ROOT应用程序未取消部署,需要重新启动Tomcat。
无论哪种方式,我无法确切地指出究竟是什么阻止ROOT.war部署,因为这需要访问Tomcat日志文件和conf文件以检查我上面描述的情况。
另外,从我看来,我的管理员似乎无法维护Tomcat服务器并找到问题。所以我决定在与共享服务器挣扎之后使用专用的Tomcat服务器。