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

Lui*_*ado 6 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 
            },
            ...
Run Code Online (Sandbox Code Playgroud)

所以我很确定它没有正确读取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>
Run Code Online (Sandbox Code Playgroud)

我甚至尝试过添加

<welcome-file-list>
  <welcome-file>foo.jsp</welcome-file>  
</welcome-file-list>
Run Code Online (Sandbox Code Playgroud)

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

Cas*_*ian 1

网络XML

web.xml 文件源自 Servlet 规范,包含用于部署和配置 Web 应用程序组件的信息。第一次配置 Tomcat 时,您可以在此处定义中央组件(例如 JSP)的 servlet 映射。在 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 文件夹中查找。