【发布时间】:2015-05-20 02:04:14
【问题描述】:
我在服务器中托管了一个功能齐全的 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 显然没有被加载。任何想法为什么?谢谢!
【问题讨论】:
-
重新启动浏览器并使用 foo.jsp 重试。你应该得到一个错误。
-
catalina.out中的任何错误? -
catalina.out 有:“
Error: Could not find or load main class org.apache.catalina.startup.Bootstrap Error: Could not find or load main class org.apache.catalina.startup.Bootstrap” -
catalina.out中的错误表明您的 Tomcat 安装或部署存在问题。您是否在此 Tomcat 实例上运行任何其他 webapp?你得到默认的“它有效!”访问基本主机 URL 时的页面? -
当我在浏览器中访问 IPaddress:8080 时,它会出现在 Tomcat 的主页上(服务器状态、管理器应用程序、主机管理器等)。我没有在 Tomcat 上运行任何其他应用程序。
标签: java xml jsp tomcat servlets