为什么主机服务器不读取我的Tomcat部署的web.xml?

时间:2015-03-17 15:02:23

标签: java xml jsp tomcat servlets

我在服务器中托管了一个功能齐全的Web应用程序。它使用localhost完美地工作但是当我在服务器上启动Tomcat 7.0.59并尝试从我的本地机器到达应用程序时,它会加载html和css,然后在尝试命中第一个Controller Servlet时中断:

function loadRows(fullAccess)
{
     var review_ID = location.search.split('review=')[1];

     $.ajax({
            url : "LoginController",
            type : "post",
            data : {
                "reviewID" : review_ID 
            },
            ...

所以我很确定它没有正确读取web.xml,这是我的Servlets / Servlet-Mappings的定义。

这是我的web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">

  <display-name>MVCDemo</display-name>
  <servlet>
     <servlet-name>LoginController</servlet-name>
     <servlet-class>mvcdemo.controllers.LoginController</servlet-class>
  </servlet>
  <servlet-mapping>
     <servlet-name>LoginController</servlet-name>
     <url-pattern>/LoginController</url-pattern>
  </servlet-mapping>
  <servlet>
     <servlet-name>UpdateController</servlet-name>
     <servlet-class>mvcdemo.controllers.UpdateController</servlet-class>
  </servlet>
  <servlet-mapping>
     <servlet-name>UpdateController</servlet-name>
     <url-pattern>/UpdateController</url-pattern>
  </servlet-mapping>
  <servlet>
     <servlet-name>SubmitController</servlet-name>
     <servlet-class>mvcdemo.controllers.SubmitController</servlet-class>
  </servlet>
  <servlet-mapping>
     <servlet-name>SubmitController</servlet-name>
     <url-pattern>/SubmitController</url-pattern>
  </servlet-mapping>
</web-app>

我甚至尝试添加

<welcome-file-list>
  <welcome-file>foo.jsp</welcome-file>  
</welcome-file-list>

要查看应用程序在尝试查找foo.jsp时是否会中断而未找到它(实际文件名为index.jsp),但仍然会呈现index.jsp,因此显然没有加载web.xml。有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分:0)

  

WEB.XML

     

web.xml文件派生自Servlet规范,和   包含用于部署和配置组件的信息   您的Web应用程序。在第一次配置Tomcat时,   您可以在此处为中央组件定义servlet映射   比如JSP。在Tomcat中,此文件的功能与此相同   在Servlet规范中描述。 唯一的分歧   Tomcat对此文件的处理是用户可以选择的   利用TOMCAT-HOME / conf / web.xml为所有人定义默认值   上下文。如果使用此方法,Tomcat将使用   TOMCAT-HOME / conf / web.xml作为基本配置,可以   由特定于应用程序的WEB-INF / web.xml文件覆盖。

来源:https://www.mulesoft.com/tcat/tomcat-configuration

我认为Tomcat不会覆盖WEB-INF / web.xml并且正在查找conf文件夹。

答案 1 :(得分:0)

尝试导入项目,并在将所有文件复制到新项目时注意。

基本上你需要覆盖web.xml部署描述符。